Golang 基础【防备忘】

Golang 基础

  1. 常量
//关于const的用法
const obj1 string = "CJS"
const obj2 = "NB"  //也可把tped去掉,系统会自动识别类型

const (
    Sunday = 7
    Monday = 1
    Tuesday = 2
    Wednesday = 3
    Thursday = 4
    Friday = 5
    Saturday = 6
)
//关于iota的用法,有点复杂,使用的时候,先进行测试
//以后可以使用iota,优雅的解决很多问题
const (
    Sunday = 7
    Monday = iota  //1
    Tuesday     //2
    Wednesday   //3
    Thursday 	//4
    Friday      //5
    Saturday    //6
)
  1. 变量定义
var a,b int
var c string
或者
var(     //这种写法一般用于声明全局变量
	a int    //初始化为0
	b string  //初始为空字符串
	c float64   //初始化为0.0
	d bool   //初始化为flase
)
  1. 变量初始化的几种情况
var a int = 100
var b = "cjs"   //自动识别类型
var (
	c = 1
	d = "nb"
)
e := true  //直接赋值
  1. 值类型与引用类型
int、float、boolstring
以及 数组 和 结构体 都属于值类型
啥是值类型,就是将一个变量的值可以通过“=”赋值给另一个变量
注意的是,这里的数组也是直接赋值,不用一个一个传

指针、切片、map、channel都属于引用类型
  1. init函数
变量除了可以在全局声明中初始化,也可以在 init 函数中初始化。
这是一类非常特殊的函数,它不能够被人为调用,而是在每个包完成初始化后自动执行,
并且执行优先级比 main 函数高。

每个源文件都只能包含一个 init 函数。初始化总是以单线程执行,并且按照包的依赖关系顺序执行。

package trans

import "math"

var Pi float64

func init() {
   Pi = 4 * math.Atan(1) // init() function computes Pi
}
  1. go中的数字类型
整型
intuint32 位操作系统上,它们均使用 32 位(4 个字节),
在 64 位操作系统上,它们均使用 64 位(8 个字节)。
uintptr 的长度被设定为足够存放一个指针即可。
整数:

int8-128 -> 127int16-32768 -> 32767int32-2,147,483,648 -> 2,147,483,647int64-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
无符号整数:

uint80 -> 255uint160 -> 65,535uint320 -> 4,294,967,295uint640 -> 18,446,744,073,709,551,615)

浮点型
go是没有float类型的,也没有double类型
只有float32float64类型
尽可能的使用float64类型,因为math、库里都是flaot64类型
Go 中不允许不同类型之间的混合使用
  1. 一些注意
取余运算只能作用于整数

++--只能用于后缀,且只能作为单独语句,不能作为表达式
	var arr = 100
	var brr int
	arr++  //正确
	++arr  //错误
	brr = arr++	 //错误
	fmt.Println(arr)
	fmt.Println(brr)
  1. 类型别名
type TZ  int
type ST string
类型别名,得到的新类型,并非和原类型完全相同
  1. 字符类型
严格来说,这并不是 Go 语言的一个类型,字符只是整数的特殊用例。
byte 类型是 uint8 的别名,对于只占用 1 个字节的传统 ASCII 编码的字符来说,完全没有问题。
例如:var ch byte = 'A';字符使用单引号括起来。
  1. 循环结构
if-else
类似C语言的用法,{if在同一行,else if也在同一行
可以在ifelse-if行,做初始化,即 if n:=10;n>=i{  }

switch
类似C语言的用法,且没有break
如果想继续执行后面的内容,你懂的,用fallthrough

for
GO语言没有while 只能用for代替
for有与C语言一样的用法
for true/或者一个表达式{
	死循环
}
for i,x:=range obj{ }  的用法
这里注意下,x为接收每一个里面的值,这是拷贝,并非引用,改变x的值,不会对原数组或切点产生变化
  1. break与continue
break只能跳出最内层循环
continue 都懂
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋山刀名鱼丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值