the-way-to-go day1

前言

配置好go之后可以通过go envenv来查看环境变量是否设置正确

Go目录结构($GOROOT):

  • /bin 可执行文件,如:编译器、Go工具
  • /doc 示例文件
  • /lib 文档模板
  • /misc Go编译器的相关配置和cgo的示例
  • /os_arch 标准库的包的对象文件(.a)
  • /src 源码
  • /src/cmd Go和C的编译器的命令行脚本

调试

  • gdb

  • 活用print/println

  • fmt.Printf

    • %+v 打印包括字段内的实例的完整信息
    • %#v 打印包括字段和限定类型的所有信息
    • %T 打印某个类型的完整说明
  • panic获取栈内信息

  • defer跟踪执行过程

格式化

go fmt自动格式化go,不再需要把太多精力放在代码风格中,而且可读性更加好。(代码是给人看的)

api文档查询

https://gowalker.org

main

go的main函数既没有参数也没有返回类型,如果添加了参数或者是返回类型则会报错:

func main must have no arguments and no return values results.

结构

  • 在完成包的 import 之后,开始对常量、变量和类型的定义或声明。
  • 如果存在 init 函数的话,则对该函数进行定义(这是一个特殊的函数,每个含有该函数的包都会首先执行这个函数)。
  • 如果当前包是 main 包,则定义 main 函数。
  • 然后定义其余的函数,首先是类型的方法,接着是按照 main 函数中先后调用的顺序来定义相关函数,如果有很多函数,则可以按照字母顺序来进行排序。

常量

关键字const

变量

当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil。记住,所有的内存在 Go 中都是经过初始化的。

局部变量的初始化声明的首选形式 := 可以写成这种形式

a := 1
b := false

不能对相同名称的变量使用初始化声明,不过可以使用=

逻辑运算符

! && ||

在 Go 语言中,&& 和 || 是具有快捷性质的运算符,当运算符左边表达式的值已经能够决定整个表达式的值的时候(&& 左边的值为 false,|| 左边的值为 true),运算符右边的表达式将不会被执行。利用这个性质,如果你有多个条件判断,应当将计算过程较为复杂的表达式放在运算符的右侧以减少不必要的运算。

对于布尔值的好的命名能够很好地提升代码的可读性,例如以 is 或者 Is 开头的 isSortedisFinishedisVisible,使用这样的命名能够在阅读代码的获得阅读正常语句一样的良好体验,例如标准库中的 unicode.IsDigit(ch)

数字类型

问题4.1 : int和int64不是相同类型,int的长度和系统有关。官方解释:int is a signed integer type that is at least 32 bits in size. It is a distinct type, however, and not an alias for, say, int32.

字符类型

byte是uint8的别名

字符串

相当于定长的数组

拼接字符串
  • +
  • strings.Join()
  • bytes.Bufferr

指针

go中不能获取常量的地址。

*号的所有用法:

  1. 乘法
  2. 定义指针类型
  3. 反向引用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值