分享
  1. 首页
  2. 文章

go语言细节

--xiaoyao-- · · 2588 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

数组与字符串为值类型,切片、映射、通道为值类型,赋值需注意。

 1 package main
 2 
 3 import (
 4 "fmt"
 5 )
 6 
 7 func main() {
 8 //数组
 9 a1 := [3]int{1, 2, 3}
10 a2 := a1
11 a2[0] = 2 
12 fmt.Println(a1) //print: 1 2 3
13 fmt.Println(a2) //print: 2 2 3
14 // 字符串
15 s1 := "123"
16 s2 := s1
17 s2 = "223"
18 fmt.Println(s1) //print 123
19 fmt.Println(s2) //print 223
20 // 切片
21 slice1 := []int{1, 2, 3}
22 slice2 := slice1
23 slice2[0] = 2 
24 fmt.Println(slice1) //print 2 2 3
25 fmt.Println(slice2) //print 2 2 3
26 // map
27 m1 := make(map[int]string)
28 m1[1] = "1" 
29 m2 := m1
30 m2[1] = "2" 
31 fmt.Println(m1) //print 1:2
32 fmt.Println(m2) //print 1:2
33 // chan
34 c1 := make(chan bool)
35 c2 := c1
36  go func() {
37 v := <-c2
38 fmt.Println(v) //print true
39  }() 
40 c1 <- true
41 }
View Code

byte为uint8类型,string不是[]byte或[]rune类型

 1 package main
 2 
 3 import (
 4 "fmt"
 5 )
 6 
 7 func main() {
 8 s := "hello world"
 9 var i interface{} = s 
10 
11 switch i.(type) {
12 case []byte:
13 fmt.Println("string type is []byte")
14 case []rune:
15 fmt.Println("string type is []rune")
16 case []int8:
17 fmt.Println("string type is []int8")
18  } 
19 
20 slice := []byte{1, 2}
21 i = slice
22 switch i.(type) {
23 case []uint8:
24 fmt.Println("byte is uint8")//print 
25  } 
26 }
View Code

接口为类型和值的二元组,nil类型为空且值为空

 1 package main
 2 
 3 import (
 4 "fmt"
 5 )
 6 
 7 func trueNil() interface{} {
 8 return nil 
 9 }
10 
11 func falseNil() interface{} {
12 var ret *int = nil // 此nil带有类型
13 return ret 
14 }
15 func main() {
16 if trueNil() == nil {
17 fmt.Println("trueNil") //print trueNil
18  } 
19 
20 if falseNil() == nil {
21 fmt.Println("falseNil") //no print
22  } 
23 }
View Code

有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:--xiaoyao--

查看原文:go语言细节

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
2588 次点击
1 回复 | 直到 2000年01月01日 00:00:00
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏