在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Go 语言中包括以下内置基础类型: var bool1 bool = true var bool2 bool = (2 == 2) 注:不能接受其他类型的赋值,包括(0, 1),也不支持自动或强制类型转换 s := "123" s[1] = "3" //compile error $s = "123"; $s[1] = "3"; echo $s; //133
res, err := funName(param) if err != nil { //处理错误 } else { //无错误 } func funName(param) (res type, err error) { if ... { err = errors.New(...) return } ... return res, nil }
在此省略,有需要可再了解 note_type_1.go code list
package main import "fmt" import "errors" //引入 errors 包 //声明 bool 型全局变量 var ( enable = true disable = false ) func main() { //预定义常量 iota const ( c0 = iota //0 c1 = iota //0+1 c2 //会自动赋上一个定义常量的值或者表达式 ) const ( c3 = iota //0 c4 ) fmt.Println("c0, c1, c2 = ", c0, c1, c2) fmt.Println("c3, c4 = ", c3, c4) /* //这种写法编译时会报错,需要 if condition { 在同一行代码中 //missing condition in if statement //enable == true not used if enable == true { fmt.Println("error") } */ if enable == true { fmt.Println("enabled = ", enable) } else { fmt.Println("enabled = ", disable) } /* //编译时会出现以下错误: // cannot use 1 (type int) as type bool in assignment enable = 1; // cannot convert 1 to type bool // cannot convert 1 (type int) to type bool // cannot use 1 (type int) as type bool in assignment enable = bool(1) */ var ( a int8 = 1 b int = 2 ) //invalid operation: a + b (mismatched types int8 and int) //c := a + b //需要做类型转换 c := int(a) + b fmt.Println("c = a + b = ", c) //int32 与 int 是两种不同的类型,但是可用强制类型转换 var d int32 //d = b // cannot use b (type int) as type int32 in assignment d = int32(b) fmt.Println("d = ", d) var f1 float32 = 1.23456 fmt.Printf("f1 = %.3f \n", f1) //1.235 f2 := 1.111 //compile error: invalid operation: f1 + f2 (mismatched types float32 and float64 //f3 := f1 + f2 b1 := (float64(f1) == f2)//该比较方式不严谨 if b1 { fmt.Println("float64(f1) == f2") } else { fmt.Println("float64(f1) != f2") } //用 "" 括起来表示字符串 //字符串的操作与数组一样 var str string = "hello" fmt.Println("str = ", str) fmt.Println("str[1] = ", str[1]) fmt.Printf("%c \n", str[1]) // s[i]取第i+1个字符 //str = "hi" //compile ok //str[0] = 'c' //compile error: cannot assign to str[0] //多行字符串,用 `` 包含 str2 := ` SELECT username, pwd FROM tb_user WHERE id = 123456 ` fmt.Println(str2) str3 := " world!" fmt.Println("str + str3 = ", str + str3) // s1 + s2, 连接字符串 //len(s)返回字符串的长度 fmt.Printf("length of str2 = %d \n", len(str2)) //s[m:n] 返回从m位开始到n结束之间的字符串,m, n可以省略, 此时m为0, n为len(s) s := "hello" s = "c" + s[1:] fmt.Println(s) //cello fmt.Println(s[:3]) //cel fmt.Println(s[1:3]) //el fmt.Println(s[:]) //cello //byte 用 '' 包括字符 //var ch byte = "1" //compile error: cannot use "1" (type string) as type byte in assignment var ch1 byte = 'a' fmt.Printf("ch1 = %c \n", ch1) //ch1 = a fmt.Println(ch1) //97 //rune var ch2 rune = 'b' fmt.Printf("ch2 = %c \n", ch2) //ch2 = b fmt.Println(ch2) //98 //error err := errors.New("error1") if err != nil { //错误处理... fmt.Println(err) } var e1 error if e1 == nil { fmt.Println("no problem") } res, e := div(5, 0) //res, e := div(5, 1) if e != nil { //错误处理 fmt.Println(e) //如果div(5, 0), 会输出: error: division by zero } else { //正确 fmt.Println("res = ", res) //如果div(5, 1),会输出: res = 5 } } //定义函数 func div(a, b int) (res int, e error) { if b == 0 { e = errors.New("error: division by zero") return } return a /b , nil }
|
请发表评论