go之变量

注释

  单行注释

1
// 单行注释    等同于python   #

  多行注释

1
/*  */ 多行注释    等同于python   三引号

变量的定义和使用

  先定义再使用

  完整定义

1
2
3
4
5
6
7
8
9
package main
 
import "fmt"
 
func main() {
    //var 变量名 变量类型 = 变量值     定义并赋初值
    var name string = "zys"
    fmt.Println(name)
}

  类型推导

  虽然是类型推导,但是在定义阶段类型就固定了,后期不能改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main
 
import "fmt"
 
func main() {
    //var 变量名  = 变量值     // 自动推到出变量是string类型
    //var name ="zys"
    //var age =19
    ////var age int =99  // 一旦定义过,就不能再定义了
    //fmt.Println(name)
    //fmt.Println(age)
    ////name="彭于晏"  // 修改变量的值
    ////name=19  // 修改变量的值,类型固定,不能改
    //fmt.Println(name))
}

  简略声明

  := 表示定义并赋初值   用的多,但是不代表它没有类型

1
2
3
4
5
6
7
8
9
10
package main
 
import "fmt"
 
func main() {
    name := "zys"
    fmt.Println(name)
    name = "pyy"  // 重复定义
    fmt.Println(name)
}

  通过类型推导的方式同时定义多个变量

1
2
//var  name,age,hobby ="zys",19,"篮球"
//fmt.Println(name,age,hobby)

  通过完整定义的方式同时定义多个变量

1
2
//var name,age,hobby string = "zys","19","篮球" 
//fmt.Println(name,age,hobby)

  变量后面只能跟一种类型,不能多种。定义了string类型,age就不能是int类型

  通过简略声明的方式同时定义多个变量

1
2
//name,age,hobby:="zys",19,"篮球"
//fmt.Println(name,age,hobby)

  混合使用(用的比较多)

1
2
3
4
5
6
7
8
// 用括号括起来,第一种和第二种的混合,这种用的多,如果变量不赋初值,是没法类型推到
//var (
//  name  string = "zys"
//  age   int
//  hobby        = "篮球"
//  wife string     // 定义没有赋初值,为0
//)
//fmt.Println(name, age, hobby,wife)

  变量不能重复定义,但是可以使用 : 的形式,只要左侧有没定义过的,它算修改值

1
2
3
4
var name ="zys"
//name:="pyy"   重复定义报错
name,age:="pyy",19  // 只要左侧有没定义过的变量,这个就不错
fmt.Println(name,age)

  python 中所有类型都可以是None---》python一切皆对象(引用)--》地址里没放东西就是None,对着go中是nil,java中null

  注意点

    1.变量定义了必须使用,如果不用就报错,编译不通过

    2.变量在定义阶段,类型就固定了,后期不能改

    3.变量不能重复定义 无论用那种方式定义过,都不能再定义了,只能使用

变量命名规范

  命名规范

  Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:

  1.一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线

  2.大写字母和小写字母是不同的:Name和name是两个不同的变量

  3.关键字和保留字都不建议用作变量名 --->内置函数,包,关键字不能做变量名

  25个关键字

1
2
3
4
5
break      default       func     interface   select
case       defer         go       map         struct
chan       else          goto     package     switch
const      fallthrough   if       range       type
continue   for           import   return      var

  内建常量

1
true false iota nil

  内建类型

1
2
3
4
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error

  内建函数

1
2
3
make len cap new append copy close delete
complex real imag
panic recover

  注意

  go变量定义推荐用驼峰   AgeOfPerson    java中也是

  python中推荐下划线    age_of_person 

  go大小写有特殊含义

  go的文件命名推荐用下划线

  go变量定义推荐用驼峰,go的文件命名推荐用下划线

posted @   那就凑个整吧  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示