go基础2

荆南山砍柴人 荆南山砍柴人     2022-08-02     330

关键词:

//https://tour.golang.org package main

//  模块导入 import (  "fmt"  "math"  "runtime"  "time" )


 

//  redis 支持“发布/订阅”的消息模式,可以基于此构建聊天室等系统 //  redis 贡献者之一,使用该模式开发的聊天室的例子,https://gist.github.com/348262


 

// 模拟求开方的函数1,限制循环的次数为10

func sqrt_simulate_1(x float64) float64 {  z := 1.0  for i := 1; i < 10; i++{   z -= (z * z - x )/(2 * z)  }  return z }

// 优化的求开发,x不是很大的话,循环的次数会少

func sqrt_simulate_2(x float64) float64 {  z := 1.0  delta := 0.000000001  for i := 1; math.Abs((z * z - x )/(2 * z)) > delta; i++{   z -= (z * z - x )/(2 * z)   fmt.Println("---------call time:",i)  }  return z }


 

// switch 结构

func show_switch(){

 fmt.Print("Go runs on ")

 switch os := runtime.GOOS; os {  

 case "darwin":    fmt.Println("OS X.")   

case "linux":    fmt.Println("Linux.")

  default:    fmt.Printf("%s.", os)  }

}

// switch_evaluation_order

func switch_evaluation(){  

fmt.Println("When is Saturday?")  // 今天是星期几  

today := time.Now().Weekday()  // now_time := time.Now()  

// now_hour := time.Now().Hour()

 // now_min := time.Now().Minute()

 // now_sec := time.Now().Second()

 // fmt.Println(now_time, now_hour, now_min, now_sec)

 switch time.Saturday {   

case today + 0:    fmt.Println("Today.")

  case today + 1:    fmt.Println("Tomorrow.")

  case today + 2:    fmt.Println("2 days later.")   

default:    fmt.Println("Too far away.")

 }

}

// switch without a conditon ,可以用来做ie else else很长的那种逻辑

func switch_without_conditon(){  fmt.Println("Switch without a condtion")  t := time.Now().Hour()  switch {   case t < 12:    fmt.Println("Good morning.")   case t < 17:    fmt.Println("Good afternoon.")   default:    fmt.Println("Good evening.")

 } }


 

// defer,上下文都返回后才执行 // defer都放进栈里,后进先出

func show_defer()

{  

defer fmt.Println("Day")

 defer fmt.Println("fucking")

 fmt.Println("What")  fmt.Println("a")

}

 

func counting(){

 fmt.Println("Counting")

 for i := 1; i < 10; i++

{   defer fmt.Println(i)  }

 fmt.Println("Done")

}

 


 

func main(){  

fmt.Println(sqrt_simulate_1(2), math.Sqrt(2))  

fmt.Println(sqrt_simulate_2(2), math.Sqrt(2))

 fmt.Println(sqrt_simulate_2(70000), math.Sqrt(70000))

 show_switch()

 switch_evaluation()

 switch_without_conditon()

 show_defer()  counting()

}

好好学习go语言,go语言基础学习目录★√

好好学习GO语言,GO语言基础学习目录★√GO语言好好学习GO语言,GO语言基础学习目录★√一、GO语言基础学习01-Go简介02-标识符与变量03-数据类型04-流程控制05-运算符6-值类型-1-数值类型06-值类型-2-字符串06-值类型-3-数组06-值类型-4-... 查看详情

好好学习go语言,go语言基础学习目录★√

好好学习GO语言,GO语言基础学习目录★√GO语言好好学习GO语言,GO语言基础学习目录★√一、GO语言基础学习01-Go简介02-标识符与变量03-数据类型04-流程控制05-运算符6-值类型-1-数值类型06-值类型-2-字符串06-值类型-3-数组06-值类型-4-... 查看详情

2.9go微服务实战(go语言基础)---goweb编程

第9章 GoWeb编程9.1 net/http包 9.1.1 GoWeb工作的基本原理 9.1.2 http详解9.2 Web框架 9.2.1 选择框架 9.2.2 httprouter框架9.3 Web底层服务 9.3.1 Scoket简介 9.3.2 TCPSocket 9.3.3 UDPSocket 9.3.4 WebSocket9.4 中间件 9.4.1 基本用法 9.4.2 进阶... 查看详情

go基础2

//https://tour.golang.orgpackagemain// 模块导入import( "fmt" "math" "runtime" "time") // redis支持“发布/订阅”的消息模式,可以基于此构建聊天室等系统// redis贡献者之一,使用该模式开发的聊天室的例子,h 查看详情

1.2go微服务实战(go语言基础)---基本数据类型

第2章 基本数据类型2.1 整型 2.1.1 整型取值范围 2.1.2 运算符 2.2 浮点型 尽量使用float64,因为float32是按照小数位数输出的,但默认小数位数并不准确。2.3 复数和布尔类型2.4 格式化说明符 查看详情

go基础编程day-2

Go的常亮关键字:ConstGo常亮的多个定义://定义常亮的关键字const//定义多个常亮const(PI=3.14const1="1"const2=2const3=3)全局变量的声明与赋值:var(name="wyc"name1=1name2=2name3=3)一般类型声明:type(newTypeinttype1float32type2stringtype3byte)Go的基本类型... 查看详情

go基础3(代码片段)

目录一.map1.1声明map1.2map的遍历1.2.1只遍历key1.2.2 只遍历value1.2.3按照指定的顺序遍历map1.3 delete()删除键值对1.4 元素为map类型的切片1.5 值为切片类型的map1.6 练习二.函数2.1 函数的定义2.2函数的基本使用2.3 defer语句2.3.1 defer的... 查看详情

go基础3(代码片段)

目录一.map1.1声明map1.2map的遍历1.2.1只遍历key1.2.2 只遍历value1.2.3按照指定的顺序遍历map1.3 delete()删除键值对1.4 元素为map类型的切片1.5 值为切片类型的map1.6 练习二.函数2.1 函数的定义2.2函数的基本使用2.3 defer语句2.3.1 defer的... 查看详情

20220712go语言基础知识

基础1.内置函数2.流程控制2.1.if与switch2.1.1.if2.1.2.switch2.2.for3.指针3.1.指针地址和指针类型3.2.指针取值3.3.空指针4.数组Array4.1.数组定义4.2.数组定义4.3.与数组相关的函数5.切分Slice5.1.切分Slice定义5.2.切分Slice初始化5.3.cap与len5.4.操作... 查看详情

1.6go微服务实战(go语言基础)---包和代码测试

第6章 包和代码测试6.1 包及Go工具 6.1.1 包导入 6.1.2 Go工具6.2 代码优化 6.2.1 Go代码的优化 代码的优化要基于Go语言的语法和编译器原理进行。代码的优化关键是性能分析。 Go语言提供了runtime/pprof标准库。gotoolpprof--help 6.... 查看详情

1.3go微服务实战(go语言基础)---字符串与复合数据类型

第3章 字符串与复合数据类型3.1 字符串和数组 3.1.1 字符串 3.1.2 数组3.2 slice 3.2.1 结构定义 3.2.2 基本操作 3.2.3 append 3.2.4 copy 3.2.5 其他3.3 map 3.3.1 定义 3.3.2 基本操作3.4 struct 3.4.1 结构定义 3.4.2 基本操作 3.4.3... 查看详情

go基础之程序结构数据类型(代码片段)

Go基础(一)之程序结构、数据类型一、简介1.1Go语言的介绍1.2环境配置1.3快速入门1.4Go开发的注意事项二、程序结构2.1标识符2.2变量2.3常量2.4运算符2.5流程控制2.7init函数三、数据类型3.1基本数据类型3.1.1整型3.1.2浮点型3.1... 查看详情

go基础之程序结构数据类型(代码片段)

Go基础(一)之程序结构、数据类型一、简介1.1Go语言的介绍1.2环境配置1.3快速入门1.4Go开发的注意事项二、程序结构2.1标识符2.2变量2.3常量2.4运算符2.5流程控制2.7init函数三、数据类型3.1基本数据类型3.1.1整型3.1.2浮点型3.1... 查看详情

go基础2(代码片段)

目录运算符算术运算符关系运算符逻辑运算符位运算符赋值运算符流程控制if判断if判断的特殊写法for循环死循环forrange循环练习break和continueswitchcasegoto(跳转到指定的标签)(Array)数组数组定义数组的初始化数组的遍历多... 查看详情

go基础2(代码片段)

目录运算符算术运算符关系运算符逻辑运算符位运算符赋值运算符流程控制if判断if判断的特殊写法for循环死循环forrange循环练习break和continueswitchcasegoto(跳转到指定的标签)(Array)数组数组定义数组的初始化数组的遍历多... 查看详情

go基础篇第2篇:内置库模块fmt

packagefmtimport"fmt"mt包实现了类似C语言printf和scanf的格式化I/O。格式化动作(‘verb‘)源自C语言但更简单。Printingverb:通用:%v 值的默认格式表示%+v 类似%v,但输出结构体时会添加字段名%#v 值的Go语法表示%T 值的类型的Go语法表示... 查看详情

go语言入门指南零基础入门go语言|golang入门指南(代码片段)

...`https://github.com/CocaineCong/Golang-Learning`1.【第一轮】基础部分1.1教程1.2练习2.【第二轮】网络爬虫2.1教程2.2mod管理第三方包2.3git机制3.【第三轮】备忘录4.【第四轮】商城or视频网站5.【第五轮】IM即时通信6.【第六轮】微服务7.... 查看详情

go语言入门指南零基础入门go语言|golang入门指南(代码片段)

...`https://github.com/CocaineCong/Golang-Learning`1.【第一轮】基础部分1.1教程1.2练习2.【第二轮】网络爬虫2.1教程2.2mod管理第三方包2.3git机制3.【第三轮】备忘录4.【第四轮】商城or视频网站5.【第五轮】IM即时通信6.【第六轮】微服务7.... 查看详情