golang笔记(一)

warning: 这篇文章距离上次修改已过325天,其中的内容可能已经有所变动。

1. 第一个go程序

package main

import "fmt"

func main() {
  fmt.Println("Hello world!")
}

2. 变量

1. 使用方法

golang中的变量引入了关键字 var,很特别的是golang的类型是写在变量名之后

定义变量的格式是: var 变量名 数据类型 = 值。

package main

import "fmt"

func main() {
  // 变量的定义和使用
  // 变量定义格式
  // var 变量名 数据类型
  var a int
  a = 6
  fmt.Println(a)
  // var 变量名 数据类型 = 值
  var b int = 5
  fmt.Println(b)
}

2. 自动推导类型

简单化给变量赋值,程序会自动以初始值来判定变量类型

格式: 变量名 := 值

package main

import "fmt"

func main() {
  a := 10 // int
  b := 3.14 // float64
  c := "hello" // string
  
  // 输出结果 int, float64, string
  fmt.Printf("%T, %T, %T\n", a, b, c);
}

3. 多重赋值

格式1: var 变量名1, 变量名2, 变量名3 ... = 值1, 值2, 值3 ...

格式2: 变量名1, 变量名2, 变量名3 ... := 值1, 值2, 值3 ...

package main

import "fmt"

func main() {
  var a, b, c = 10, 3.14, "hello"
  var e, f, g = 1, 2, 3
  
  fmt.Println(a, b, c)
  fmt.Printf("%T, %T, %T\n", a, b, c)
}

4. 匿名变量

_: 匿名变量,可以直接丢弃的数据,一般用于返回值不需要时使用

package main

import "fmt"

func main() {
  // 定义变量,除了a,其它2个都丢弃
  a, _, _ := 5, 10, 15
  
  // 输出a
  fmt.Println(a);
  
  // 会报错
  fmt.Println(_)
}

5. 数据交换

和python用法相同,直接换值

变量名1, 变量名2 = 变量名2, 变量名1

package main

import "fmt"

func main() {
  // 定义
  a, b := 5, 10
  
  // 交换
  a, b = b, a
  
  // 输出结果 10, 5
  fmt.Println(a, b)
}

6. 输出格式

我们一般会使用fmt库来进行格式输出,一般常用的就几个:

  1. fmt.Println("hello") 输出内容并换行
  2. fmt.Print("hello") 输出内容不换行
  3. fmt.Printf("%s\n", "hello") 格式化数出,自身不换行

7. 输入格式

还是利用fmt,用fmt.Scanf 和 fmt.Scan,在命令行下会阻塞等用户输入。

func main() {
  var a int
  // 等待输入
  fmt.Scan(&a)
  // 打印输入结果
  fmt.Println(a)  
}

3. 基本数据类型

类型名称长度默认值说明
Bool布尔类型1false
byte字节型10uint8别名
int, uint整型平台相关0有符号32位或者无符号64位
int8整型10-128 ~ 127
uint8整型100 ~ 255
int16整型20-32768-32767
uint16整型200 ~ 65535
int32整型40-2^31-1~ 2^31-1
uint32整型400 ~ 2^32
int64整型80-2^63-1~ 2^63-1
uint64整型802^64-1
float32浮点40.0小数位精确到第7位
float64浮点80.0小数位精确到第15位
string字符串 “”默认为utf-8

4. 占位符

格式含义
%%一个%字面量
%b二进制表现
%c字符型,把数字按照ASCII码相应转换为对应的字符
%d十进制表示
%f浮点数或者复数
%o八进制表示
%p十六进制表示,前缀为0x
%q字符串或者字节切片[]byte
%s字符串表示
%t布尔值 true / false
%T变量类型
%x十六进制表示整型值(a-f小写)
%X十六进制表示整形值(用A-F大写)

添加新评论

* 鉴于国内大环境,评论需要审核才能放出,请不要多次重复提交!