go_1

  1.  变量定义
1 var num int
2 var num = 10
3 num := 10
4 var n1,n2,n3 int = 1,2,3
5 全局变量定义
  var(
    n1 = 1
    n2 = 2
  )

   

  2.  数据类型 fmt.printf("%T",n)来查看数据类型

    unsafe.sizeof(n1) 查看数据占用字节大小

1 整数 
2     有符号 
    
      int, 32位系统就是int32 64位系统就是int64
      int8, -128~127
      int16, +- 65536
      int32, +- 42亿
      int64 +-
      rune 相当于int32 表示一个unicode码
3 无符号

    uint, 32位系统就是uint32 64位系统就是uint64
    uint8, 0~255
    uint16, 0~65536
    uint32, 0~42亿
    uint64,
    byte 等价uint8存储字符使用byte 4 浮点 float32,float64 5.123e2 表示5.123*10的2次方 5.123e-2 5.123/10的2次方 5 字符型 6 布尔型 bool 7 字符串 string 可以使用反引号 分行拼接字符串使用+号 要留在上面
复杂数据类型
指针pointer
数组
struct
管道 channel
函数
切片 slice 像集合
接口 interface
map

 3. 基本数据类型转string

var num = 1
var num2 = 1.2
var b bool = true
var char byte= 'y'
var str string

str = fmt.Sprintf("%d",num)
str = fmt.Sprintf("%f",num2)
str = fmt.Sprintf("%t",b)
str = fmt.Sprintf("%c",char)
str = strconv.Itoa(num)

str =strconv.FormatInt(int64(num),10) // 第二个参数代表十进制
str= strconv.FormatFloat(num2,'f',10,64)  // 第二个参数代表格式-00.00,第三个代表保留10位小数,第四个代表num2是64位第float
str = strconv.FormatBool(b)
 

4. string 转基本数据类型  如果没有转成功会设置位默认值

var str string = "true"
var b , _  = strconv.ParseBool(a)// 返回两个值
var d , _ = strconv.ParseInt(c,10,0) // 第二个参数代表10进制 0代表返回int 8 16 32 64 
var f, _ = strconv.ParseFloat(e,64) // 2arg 代表返回64位float

 5. 指针

值类型都有对应的指针类型

值类型有 int系列 float系列 bool string 数组 结构体

// 获取变量地址用&
&num
var ptr *int = &num

var i int = 10
// 指针
    var ptr *int = &i
// 获取指针地址对应的值
println(*ptr)
// 获取ptr的地址
println(&ptr)
// 获取i的地址
println(&i)

 6. 值类型/变量直接存储值 通常分配在栈中

   int系列 float系列 bool string 数组 结构体

引用类型/变量存储的地址 通常

  指针 slice切片 map channel interface

7. 公有

标识符大写

私有

标识符小写

相同的包相当于同一个文件一样 不能定义重复的变量 函数等

 

8. 运算符计算公式a - a / b * b

-10 % 3 = -10 - (-10) / 3 * 3 = -1

i++ i-- 只能独立使用不能 a = i++

 

9. 进制

go不能直接使用2进制

可以直接定义8进制0开头011等于9

可以使用16进制 0x

posted @ 2022-01-29 10:39  rudynan  阅读(32)  评论(0编辑  收藏  举报