区块链技术博客
www.b2bchain.cn

初识Go语言1

这篇文章主要介绍了初识Go语言1的讲解,通过具体代码实例进行20234 讲解,并且分析了初识Go语言1的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=20234

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

初识Go语言

  • Hello World!
    • 关键字
    • Go语言数据类型
    • 变量
    • 常量
    • iota
    • 有趣的 iota 例子:

Hello World!

Go语言的基础组成有以下几个部分:

  • 包声明
  • 引入包
  • 函数
  • 变量
  • 语句&表达式
  • 注释
    hello world实例(main.go)
package main  import "fmt"  func main() {	//这里的 { 不能单独起一行,否则会报错 	/*第一个go hello world*/ 	fmt.Println("Hello World!") } 

关键字

go工程的25个关键字或保留字如下:
初识Go语言1

Go语言数据类型

1、布尔型(true / false)

var a bool = true 

2、数字类型
2.1 整型

  • uint8:无符号8位整型(0~255)
  • uint16:无符号16位整型(0~65535)
  • uint32:无符号32位整型(0~4294967295)
  • uint64:无符号 64 位整型 (0 到 18446744073709551615)
  • int8:有符号 8 位整型 (-128 到 127)
  • int16:有符号 16 位整型 (-32768 到 32767)
  • int32:有符号 32 位整型 (-2147483648 到 2147483647)
  • int64:有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)

2.2 浮点型

  • float32:IEEE-754 32位浮点型数
  • float64:IEEE-754 64位浮点型数
  • complex64:32 位实数和虚数
  • complex128:64 位实数和虚数

2.3 其他数字类型

  • byte :类似uint8
  • rune:类似uint32
  • uint:32位或64位
  • int:和uint一样大
  • uintptr:无符号整型,用于存放一个指针

3、字符串类型
  字符串类型就是由一串固定长度的字符串链接起来的。
4、派生类型
包括:

  • 指针类型(Pointer)
  • 数组类型
  • 结构化类型 (struct)
  • Channel类型
  • 函数类型
  • 切片类型
  • 接口类型(interface)
  • Map类型

变量

变量声明有3种方式:

第一种:指定变量类型,如果没有初始化,则变量默认为零值
例子:

package main  import "fmt"  func main() { 	//声明一个变量并初始化 	var name1 = "gogogo" 	fmt.Println(name1)  	//没有初始化就为零值 	var name2 int 	fmt.Println(name2)  	//bool初始值为false 	var name3 bool 	fmt.Println(name3) 	 	//string 默认为"" 	var n3 string 	fmt.Println(n3)  	//以下几种类型默认为 nil 	var n4 *int 	var n5 []int 	var n6 map[string]int 	var n7 chan int 	var n8 func(string) int 	var n9 error // error 是接口 	fmt.Println(n4) 	fmt.Println(n5) 	fmt.Println(n6) 	fmt.Println(n7) 	fmt.Println(n8) 	fmt.Println(n9) } 

输出:初识Go语言1
第二种:根据值字符自行判定变量类型
var v_name = value

package main  import "fmt"  func main() { 	var test = 1 	fmt.Println(test) } 

第三种:省略var,注意 := 左侧如果没有声明新的变量,就会产生编译错误,格式:
v_name := value

package main  import "fmt"  func main() { 	//这种不带声明格式的只能在函数体中出现 	test := 1 	fmt.Println(test)  	var intVal int 	intVal := 1 // 这时候会产生编译错误,因为没有声明新的变量  	intVal, intVal1 := 1, 2 // 此时不会产生编译错误,因为有声明新的变量,因为 := 是一个声明语句 	fmt.Println(intVal, intVal1) } 
package main  import "fmt"  // 类型相同多变量声明 var v1, v2, v3 int = 1, 2, 3  // 因式分解类型一般用于声明全局变量 var ( 	a int 	b bool ) var e, f = 3, "good"  //这种不带声明格式的只能在函数题中出现 // g, h := 4, "nice"  func main() { 	g, h := 3, "nice" 	fmt.Println(v1, v2, v3, a, b, e, f, g, h) } 

结果:
初识Go语言1

常量

常量中的数据类型只可以是布尔型、数字型和字符串型
显式类型定义: const b string = “abc”
隐式类型定义: const c = “test”

package main  import "unsafe"  const ( 	a = "abccsaaaa" 	b = len(a) 	c = unsafe.Sizeof(a) )  func main() { 	e := []int{1, 2, 3} 	d := cap(e) 	println(a, b, c, d) } 

初识Go语言1

iota

iota 是特殊常量,可以认为是一个可以被编译器修改的常量。
iota 在 const 关键字出现时将被重置为 0 (const内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次,(iota 可理解为 const 语句块中的行索引)

iota也可以被作为枚举值

const ( 	a = iota 	b = iota 	c = iota ) 

第一个 iota 等于 0 ,每当 iota 在新的一行使用时,它的值会自动加1;所以a = 0,b = 1,c = 2可以简写为下面的:

const ( 	a = iota 	b 	c ) 

例子:

package main  import "fmt"  func main() {     const (             a = iota   //0             b          //1             c          //2             d = "ha"   //独立值,iota += 1             e          //"ha"   iota += 1             f = 100    //iota +=1             g          //100  iota +=1             h = iota   //7,恢复计数             i          //8     )     fmt.Println(a,b,c,d,e,f,g,h,i) } 

输出:0 1 2 ha ha 100 100 7 8


有趣的 iota 例子:

package main  import "fmt" const (     i=1<<iota     j=3<<iota     k     l )  func main() {     fmt.Println("i=",i)     fmt.Println("j=",j)     fmt.Println("k=",k)     fmt.Println("l=",l) } 

输出:
初识Go语言1
为什么会这样呢?
i = 1 是因为 iota = 0, i = 1 = 0001 = 1<<0
j = 6 是因为 iota = 1, j = 6 = 0110 = 3 << 1
k = 12 是因为 iota = 2,k = 12 = 1100 = 3 << 2 (iota 每出现一次自动加1,前面的操作数如果不指定就默认用的是上一个的,这里是3)
l = 24 是因为 iota = 3, k = 24 = 0001 1000 = 24 = 3 << 3

本文转自互联网,侵权联系删除初识Go语言1

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 初识Go语言1
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们