设为首页 加入收藏

TOP

Go语言学习笔记(二)十分钟上手(一)
2017-09-30 13:26:58 】 浏览:9611
Tags:语言学习 笔记 十分钟 上手

加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959

变量&常量

变量

  变量名由字母、数字、下划线组成,不能以数字开头。

...
var (
    A int    //默认为0
    B string //默认为""
    C bool   //默认为false

    Name string = "suoning"
    Age         = 18 // 自动识别类型
)

func main() {
    sex := "man"          //等价于 var sex string = "man"
    var girlfriend string //声明变量
    girlfriend = "Dawn"   //变量赋值

    Name := "Nick" //正确
    //girlfriend := "Jenny"    //错误的!不能申明两次
    ...
}

 

常量

常量使用const 修饰,代表永远是只读的,不能修改。

常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。

语法:const identifier [type] = value,其中type可以省略。

iota

iota,特殊常量,可以认为是一个可以被编译器修改的常量。

在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。

...
const (
    A = 'a'    //97
    B = iota   //1
    C          //2
    D = "nick" //"nick"  iota += 1
    E          //"nick"  iota += 1
    F = 618    //618  iota +=1
    G          //618  iota +=1
    H = iota   //7
    I          //8
)
...

 

基本数据类型

布尔型

布尔型的值只可以是常量 true 或者 false。

var a bool
var a bool = true
var a = false

 

数字类型

int:

  • uint8(无符号 8 位整型 (0 到 255))
  • uint16(无符号 16 位整型 (0 到 65535))
  • uint32(无符号 32 位整型 (0 到 4294967295))
  • uint64(无符号 64 位整型 (0 到 18446744073709551615))
  • int8(有符号 8 位整型 (-128 到 127))
  • int16(有符号 16 位整型 (-32768 到 32767))
  • int32(有符号 32 位整型 (-2147483648 到 2147483647))
  • int64(有符号 64 位整型 (-9223372036854775808 到 9223372036854775807))

float:

  • float32(IEEE-754 32位浮点型数)
  • float64(IEEE-754 64位浮点型数)
  • complex64(32 位实数和虚数)
  • complex128(64 位实数和虚数)

其它:

  • byte(类似 uint8)
  • rune(类似 int32)
  • uint(32 或 64 位)
  • int(与 uint 一样大小)
  • uintptr(无符号整型,用于存放一个指针) 

类型转换

package main

func main() {
    var a int
    var b int32
    var c int64
    a = 15
    //b = a + a // compiler error
    b = int32(a + a) // ok
    b = b + 5 // ok: 5 is a constant
    c = c + 5 // ok
}

 

字符类型

存储为ascii码

var a byte = 'a'
fmt.Println(a)    //97

 

字符串类型

字符串表示两种方式:

  1. 双引号 
  2. `` (反引号,不转义)

string底层就是一个byte的数组

string本身是不可变的,因此要改变string中字符,需要如下操作:

str := "hello world"
s := []byte(str)
s[0] = 'o'
str = string(s)

 

操作符

算术运算符

  • + 相加
  • - 相减
  • * 相乘
  • / 相除
  • % 求余
  • ++ 自增
  • -- 自减

 

关系运算符

  • == 检查两个值是否相等,如果相等返回 True 否则返回 False。
  • != 检查两个值是否不相等,如果不相等返回 True 否则返回 False。
  • > 检查左边值是否大于右边值,如果是返回 True 否则返回 False。
  • < 检查左边值是否小于右边值,如果是返回 True 否则返回 False。
  • >= 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。
  • <= 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。

 

逻辑运算符

  • && 逻辑 AND 运算符。 如果两边的操作数都是 True,则条件 True,否则为 False。
  • || 逻辑 OR 运算符。 如果两边的操作数有一个 True,则条件 True,否则为 False。
  • ! 逻辑 NOT 运算符。 如果条件为 True,则逻辑 NOT 条件 False,否则为 True。

 

位运算符

位运算符对整数在内存中的二进制位进行操作。

  • & 按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。
  • | 按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或。
  • ^ 按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。
  • << 左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
  • >> 右移运算符">>"是双目运算符。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。

 

赋值运算符 

  • = 简单的赋值运算符,将一个表达式的值赋给一个左值
  • += 相加后再赋值 (C += A 等于 C = C + A)
  • -= 相减后再赋值 (C -= A 等于 C = C - A)
  • *= 相乘后再赋值 (C *= A 等于 C = C * A)
  • /= 相除后再赋值 (C /= A 等于 C = C / A)
  • %= 求余后再赋值 (C %= A 等于 C = C % A)
  • <<= 左移后赋值 (C <<= 2 等于 C = C << 2)
  • >>= 右移后赋值 (C >>= 2 等于 C = C >> 2)
  • &= 按位与后赋值 (C &= 2 等于 C = C & 2)
  • ^= 按位异或后赋值  (C ^= 2 等于 C = C ^ 2)
  • |= 按位或后赋值 (C |= 2 等于 C = C | 2)

&nb

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go语言学习笔记(一)Let's .. 下一篇Go语言学习笔记(三)数组 & 切片..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目