golang学习笔记

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

与c语法不同之处:

 1. 参数列表中各个参数类型相同时可以只写出最后一个,如:add(x, y int) int { return x +y }
 2. 类型在参数名(变量/函数)后面
 3. 函数的左大括号要跟函数名同一行,否则编译不过
 4. 函数定义要先写关键字func在函数开头(函数外的每个语句都要以func、var等等关键字开头)
 5. 在包或者函数级别声明变量时要用var语句
 6. 函数支持多值返回,如:func swap(x, y string) (string, string) { return y,x }
 7. 函数支持命名返回值,如func split(x int) (x, y int) { ... return}

 8. 初始化使用表达式时可以不用写类型,由初始值推导出类型
 9. 可以用 :=实现变量简捷复制,不需要加var,但仅能在函数内部使用
 10.fmt.Printf格式化输出:%T输出变量类型,%q输出带双引号的字符串,%v输出结构类型
 11.不同类型变量的赋值需要显示类型转换
 12.常量定义要使用const,不能使用 :=,声明两个const变量可以const(x=1; y=2)
 13.条件控制语句不加小括号(if、for、switch等)
 14.for循环前置、后置语句可以为空,如for sum < 1000 {...},格式类似c中的while,for的循环条件为空时是死循环
 15.if语句后可以加一个便捷语句,如if v:=41; sum<lim{...},if便捷语句中声明的变量只在if语句及else语句中有效
 16.switch...case...在匹配成功的时候会停止,不需要像c那样显示break,没有条件的switch语句等同于switch true,用于更清晰的表达if-then-else
 17.defer关键词,延缓语句执行,直到上层函数返回,延迟的函数会被压入栈中,后进先出
 18.go有指针,但没有指针运算,通过指针访问结构体成员时用点操作符,指针是透明的
 19.通过Name:语法可以只列出部分字段,其余字段为零值
 20.由make创建slice b := make([]int, 0, 5) // len(b)=0, cap(b)=5,make的参数包括长度和容量,slice的零值是nil,一个nil的slice长度和容量都是0
 21.go中若有声明但未使用的变量时编译会报错,用_来做变量名就可以了
 22.go中没有类,但是可以在包内任意类型定义方法(不包括基础类型)
 23.方法可以与命名类型或者命名类型的指针相关联,接收者为指针有两个好处:第一,避免在方法调用中拷贝值,第二,可以修改接收者指向的值
 24.接口类型是由一组方法定义的类型的集合,接口类型的值可以存放实现这些方法的任何值
 25.本地查看go语言官方文档,godoc -http=:8011(端口号自己指定),然后浏览器打开http://localhost:8011就可以了

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

本文来自:CSDN博客

感谢作者:qq_32746725

查看原文:golang学习笔记

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

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