码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • go语言基础之变量


     

    目录

    视频学习地址:Go零基础入门_在线视频教程-CSDN程序员研修院

    一. 单变量声明和赋值

    1、变量的声明

    2、变量赋值

    3、声明并赋值

    二. 多变量声明和赋值

    1、多变量声明

    2、多变量赋值

    三. 变量声明赋值的简易写法

    1、单变量简易写法

    2、多变量简易写法

     四. 匿名变量和值拷贝

    1、匿名变量

    2、值拷贝

     五.命名规范

    1、规则

    2、go中的关键字

    3、预定义的名字,用于内建的常量、类型和函数

    4、语句分隔符


    视频学习地址:Go零基础入门_在线视频教程-CSDN程序员研修院

    一. 单变量声明和赋值

    1、变量的声明

    1. 语法:var 变量名 类型
    1. package main
    2. import "fmt"
    3. func main() {
    4. // 变量声明:var 变量名 类型
    5. var age int
    6. fmt.Println(age)
    7. }
    1. 零值(默认值)

    看下图,当你声明,没有赋值的时候,go会给你默认的值

    1. package main
    2. import "fmt"
    3. func main() {
    4. var age int
    5. var name string
    6. var bol bool
    7. fmt.Println(age) // 0
    8. fmt.Println(name) // ""
    9. fmt.Println(bol) // false
    10. }

    2、变量赋值

    我们可以通过 = 这个符号进行赋值,并且可以进行多次赋值

    1. package main
    2. import "fmt"
    3. func main() {
    4. var age int
    5. fmt.Println(age)
    6. age = 18
    7. fmt.Println(age)
    8. age = 22
    9. fmt.Println(age)
    10. }

    3、声明并赋值

    语法 var 变量名 [类型] = 值 ([类型]:代表类型可省略)

    1. package main
    2. import "fmt"
    3. func main() {
    4. //var name string = "xt"
    5. var name = "xt"
    6. fmt.Println(name)
    7. }

    二. 多变量声明和赋值

    1、多变量声明

    1. 以逗号分隔
    1. package main
    2. import "fmt"
    3. func main() {
    4. var name1, name2, name3 string
    5. fmt.Println(name1, name2, name3)
    6. }
    1. 集合类型
    1. package main
    2. import "fmt"
    3. func main() {
    4. var (
    5. x int
    6. y string
    7. )
    8. fmt.Println(x, y)
    9. }

    2、多变量赋值

    1. package main
    2. import "fmt"
    3. func main() {
    4. var name1, name2, name3 = "xt", "tx", "xtt"
    5. fmt.Println(name1, name2, name3)
    6. var (
    7. x = 18
    8. y = "米"
    9. )
    10. fmt.Println(x, y)
    11. }

    三. 变量声明赋值的简易写法

    1、单变量简易写法

    1. 语法 变量名 := 值
    1. package main
    2. import "fmt"
    3. func main() {
    4. //var age2 = 22
    5. // 简写
    6. age2 := 22
    7. fmt.Println(age2)
    8. }
    1. 注意点,简写的方式 不能写在全局(后面将作用域时,会再次说明)
    1. package main
    2. import "fmt"
    3. // 这个可以写在全局
    4. var str = "xt"
    5. // 不能这样写,会报错
    6. //p := "xt"
    7. func main() {
    8. //var age2 = 22
    9. // 简写
    10. age2 := 22
    11. fmt.Println(age2)
    12. }

    2、多变量简易写法

    1. 语法
    1. package main
    2. import "fmt"
    3. func main() {
    4. t, u := 18, "heheheh"
    5. fmt.Println(t, u)
    6. }
    1. 注意点,以声明的变量,在不能再 :=
    1. package main
    2. import "fmt"
    3. func main() {
    4. t, u := 18, "heheheh"
    5. fmt.Println(t, u)
    6. // 报错
    7. //t := 20
    8. }

     四. 匿名变量和值拷贝

    1、匿名变量

    1. 定义:匿名变量即没有命名的变量,在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)。 匿名变量用一个下划线_表示。
    2. 匿名变量不占用命名空间,不会分配内存
    1. package main
    2. import (
    3. "fmt"
    4. )
    5. func main() {
    6. a, b, c := 1, 2, 3
    7. fmt.Println(a,b,c)
    8. _, _, z := 4,5,6
    9. fmt.Println(z)
    10. }
    1. package main
    2. import "strconv"
    3. func main() {
    4. val, err := strconv.Atoi("10")
    5. if err != nil {
    6. return
    7. }
    8. print(val)
    9. }

    2、值拷贝

    1. package main
    2. import "fmt"
    3. func main() {
    4. // 值拷贝
    5. var name1 = "tx"
    6. var name2 = name1
    7. name1 = "lxc"
    8. fmt.Println(name1)
    9. fmt.Println(name2)
    10. }
    1. 交互两个变量的值
    1. package main
    2. import "fmt"
    3. func main() {
    4. // 交互变量
    5. val1, val2 := 1, 2
    6. //val1, val2 = 2, 1
    7. // 方式一
    8. //var val3 int
    9. //val3 = val1
    10. //val1 = val2
    11. //val2 = val3
    12. // 方式二
    13. val1, val2 = val2, val1
    14. fmt.Println(val1, val2)
    15. }

     五.命名规范

    1、规则

    1、变量名称必须由数字、字母、下划线组成。

    2、标识符开头不能是数字。

    3、标识符不能是保留字和关键字。

    4、建议使用驼峰式命名,当名字有几个单词组成的时优先使用大小写分隔

    5、变量名尽量做到见名知意。

    6、变量命名区分大小写

    2、go中的关键字

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

    3、预定义的名字,用于内建的常量、类型和函数

    1. // 内建常量:
    2. true false iota nil
    3. // 内建类型:
    4. int int8 int16 int32 int64
    5. uint uint8 uint16 uint32 uint64 uintptr
    6. float32 float64 complex128 complex64
    7. bool byte rune string error
    8. // 内建函数:
    9. make len cap new append copy close delete
    10. complex real imag
    11. panic recover

    4、语句分隔符

    1. package main
    2. import "fmt"
    3. func main() {
    4. // 不推荐写法
    5. //var name = "xt";var age = 18
    6. //fmt.Println(name, age)
    7. // 推荐写法
    8. var name = "xt"
    9. var age = 18
    10. fmt.Println(name, age)
    11. }

     

  • 相关阅读:
    卫星星座1:Starlink星座
    【JAVA日期相关】判断当前为平年还是闰年
    霍夫曼树:霍夫曼编码(Huffman Tree:Huffman Coding)
    多线程与高并发(三)—— 源码解析 AQS 原理
    Java 数据结构与算法 插入类排序:直接插入排序、希尔排序
    java 工程管理系统源码+项目说明+功能描述+前后端分离 + 二次开发
    ubuntu环境搭建记录
    【完美世界】天仙书院偷食也就算了,竟然还偷院长的孙女,美滋滋
    Android获取本地文件目录
    vue上传文件到阿里云oss方法 结合element-ui 中的 el-upload
  • 原文地址:https://blog.csdn.net/wangyuiba1314/article/details/133807260
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号