Go学习-Day2

文章目录

    • 标识符
    • 变量基础语法
    • 字符串类型
    • 类型转换
    • string和其他基本类型转换
      • 其他类型转string
      • string转其他类型
    • 指针类型
    • 运算符
    • 标准IO
    • 分支语句

个人博客

标识符

  • 驼峰法,首字母大写可以在其他包里使用,首字母小写只能在本包内使用
  • 跨包使用,的import地址从src的子目录开始,src以及src所在的GOPATH自动补全

变量基础语法

  • 定义变量

  • var i int = 10
    
  • var关键字+变量名+变量类型

  • var i = 10
    
  • 自动推断类型

  • i := 10
    
  • 简略写法


  • 对应的,可以声明多个变量

  • var a, b, c int = 1, "a", 2
    
  • var a, str1, b = 1, "a", 2
    
  • a, str1, b := 1, "a", 2
    

  • var (
    	i = 1
    	j = 2
    )
    
  • 另一种声明方法,开发中常用

  • import (
    	"fmt"
        "unsafe"
    )
    
  • 导包也可以类似这样


  • 不能改变变量的类型,例如开始赋值整数,后来又赋值浮点数。
  • 默认值,数默认为0,字符串默认为空串

字符串类型

  • 利用UTF-8编码,支持中文

  • go中字符串是常量,无法修改

  • 引号

    • 双引号"" :会识别转义字符
    • 反引号``:不识别转义字符(防止SQL注入之类的?)
  • 加号拼接,可以分行写(加号放行尾)

类型转换

  • go不会自动转换类型,需要显式转换

  • var i int = 1
    var j float32 = float32(i)
    

string和其他基本类型转换

其他类型转string

func main() {
	var a int = 10
	var b float32 = 3.14
	var s string = fmt.Sprintf("%d %.2f", a, b)
	
	fmt.Println(s)
}

string转其他类型

b, err := strconv.ParseBool("true")
f, err := strconv.ParseFloat("3.1415", 64)//返回64位要 强转
i, err := strconv.ParseInt("-42", 10, 64)//进制 和 位数
u, err := strconv.ParseUint("42", 10, 64)
  • 返回值有两个
  • 可以使用_代替err,下划线是特殊的变量,表示忽略返回值。
  • 如果无法转换则返回0
  • 学英语:parse是分析的意思,strconv = string-conversion

指针类型

  • 和C语言类似,不赘述。

运算符

  • 没有三元运算符,只能用if else,if后面没有小括号
  • 运算与C语言一致
  • 自增自减只能单独使用,不能在自增自减的同时给变量赋值
  • 自增自减的++和–都必须放在变量的后边!

标准IO

  • string也是基本类型,传入&地址。

  • func main() {
    	var str string
    	_, _ = fmt.Scanln(str)
    	fmt.Println(str)
    }
    

分支语句

  • 基本和C语言一致
  • switch 不用break;
  • 可以匹配多个表达式,逻辑或的关系
  • case,switch后面是一个表达式(不一定是常量)
  • case和switch的数据类型必须一致
  • case的常量(字面量)不能重复
  • switch后面可以不带表达式,可以代替if else作分支选择
  • fallthrough关键字可以穿透到下一分支,用来代偿省略break的功能

你可能感兴趣的:(Go,golang,学习,开发语言)