// var.go
package main import (
"fmt"
) func main() {
// 声明变量的一般形式是使用 var 关键字,可以一次声明多个变量
// 1.指定变量类型,如果没有初始化,则变量默认为零值
var country string = "cn"
var city, town string = "sh", "mh" // 2.根据值自行判定变量类型
var card = "card"
var card1, card2 = , "card2" // 3.简短形式(推荐),省略 var 不带声明, 注意 := 左侧如果没有声明新的变量就产生编译错误
// 不带声明格式的只能在函数体中出现
// 等同于 var sex1 int = 1
sex :=
sex1, sex2 := , fmt.Println(country, city, town)
fmt.Println(card, card1, card2)
fmt.Println(sex, sex1, sex2) // 交换两个变量的值,类型必须一样
sex, sex1, sex2 = sex2, sex1, sex
fmt.Println(sex, sex1, sex2) var flag bool // 布尔型
var age int // 数字型
var name string // 字符串型
var a *int // 指针类型(Pointer)
var b []int // 数组类型
var c map[string] int // Map 类型
var d chan int // Channel 类型
var e func(string) int // 函数类型
var f error // 接口类型(interface)
// 结构化类型(struct)
// 切片类型 // 未初始化的变量为零值
fmt.Println(flag) // false
fmt.Println(age) //
fmt.Println(name) // "" 空字符串 fmt.Println(a) // nil
fmt.Println(b) // []
fmt.Println(c) // map[]
fmt.Println(d) // nil
fmt.Println(e) // nil
fmt.Println(f) // nil // 基于架构de数字型,无符号+有符号
//var A uint8
//var B uint16
//var C uint32
//var D uint64
//var E int8
//var F int16
//var G int32
//var H int64
//// 基于架构de浮点型
//var I float32
//var J float64
//var K complex64
//var L complex128
//// 其他数字类型
//var M byte
//var N rune
//var O uint
//var P int
//var Q uintptr
}
// var-scope.go
package main import (
"fmt"
) // 声明全局变量
var a int func main() {
// 声明局部变量
var a int =
var b int = fmt.Println(a) //
fmt.Println(sum(a, b)) //
} // 形式参数
func sum(a, b int) int {
return a + b
}
// const.go
package main import (
"fmt"
"unsafe"
) // 显式类型定义
const A string = "AA"
// 隐式类型定义
const B = "BB"
// 常量用作枚举
const (
Unknown =
Female =
Male =
)
// iota 特殊常量,可以被编译器修改的常量
// (可以理解为 const 语句块的行索引)
const (
a = iota
b = iota
c = iota
) const (
d = iota
e
f
) func main() {
fmt.Println(A)
fmt.Println(B)
fmt.Println(Male)
fmt.Println(unsafe.Sizeof(A)) // "AA"=16(byte) fmt.Println(a) //
fmt.Println(b) //
fmt.Println(c) // fmt.Println(d) //
fmt.Println(e) //
fmt.Println(f) //
}

Src:https://github.com/farwish/go-lab/blob/master/go-syntax/var.go

https://github.com/farwish/go-lab/blob/master/go-syntax/var-scope.go

https://github.com/farwish/go-lab/blob/master/go-syntax/const.go

Link:https://www.cnblogs.com/farwish/p/11073063.html

[Go] 数据类型,变量与变量作用域,常量的更多相关文章

  1. C#的常量和变量以及其作用域和命名规范

    1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须在定义的时候初始化. 语法: const 类型名 常量名=常量表达式 ...

  2. 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型

    010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...

  3. 04 变量 变量作用域 常量final 变量的命名规范

    变量 变量是什么:就是可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域. 注意事项: 每个变量都有类型,类 ...

  4. 变量、变量作用域、常量final、变量的命名规范

    变量 变量是什么:就是可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域. 注意事项: 每个变量都有类型,类 ...

  5. Java中的变量与变量的作用域

    关于Java中的变量及变量的作用域 关于Java中的变量及变量的作用域 0. 变量的概念 在程序运行期间,系统可以为程序分配一块内存单元,用来存储各种类型的数据.系统分配的内存单元要使用一个标记符来标 ...

  6. C变量类型和作用域

    C语言中所有变量都有自己的作用域,申明变量的类型不同,其作用域也不同.C语言中的变量,按照作用域的范围可分为两种, 即局部变量和全局变量. 一.局部变量 局部变量也称为内部变量.局部变量是在函数内作定 ...

  7. PHP语言基础(标记、注释、变量、数组、常量、函数)

    PHP标记风格 1.xml风格(标准风格推荐使用) 代码如下: <?php  echo"这是xml风格的标记";  ?>  xml风格的标记是常用的标记,也是推荐使用的 ...

  8. Swift学习——变量var和let常量的用法(一)

    Swift中的变量var和let常量 首先介绍一下Swift中的 var 和 let (1)var 是 variable的缩写形式,是变量的意思 ,是可改变的.并非数据类型 比如: 注意每一个语句后面 ...

  9. javascript变量类型及作用域

    javascript变量类型及作用域 一.简介 变量类型 ECMAScript变量可能包含两种不同类型的数据值:基本类型和引用类型. 基本类型 基本类型指的是简单的数据段,5种基本数据类型:undef ...

  10. 020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结

    020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结 本文知识点:变量与常量 知识总结 Java中的标识符 Java中的关键字 目前常 ...

随机推荐

  1. 项目Beta冲刺(团队)——05.27(5/7)

    项目Beta冲刺(团队)--05.27(5/7) 格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Beta冲刺(团队) 团队名称:为了交项目干杯 作业目标:记录Beta敏捷冲刺第5 ...

  2. DT下重新定义设置发布发布条数后的跳转页面

    destoon系统有些地方还是做得不够细致,今天给大家分享一个重新定义发布条数满了以后的页面跳转  正常逻辑跳转应该是会员升级页面而不是会员中心首页,修改方法如下:(感谢DT朋友提供的修改方案)  打 ...

  3. js 用 hasOwnProperty() 判定属性是来自该对象成员,还是原型链

            var People=function(){         this.name='liujinyu';     };          People.prototype={      ...

  4. Codeforces Round #552 (Div. 3)-D-Walking Robot-(贪心)

    http://codeforces.com/contest/1154/problem/D 解题: 1.无光的时候优先使用太阳能电池. 2.有光的时候 (1)太阳能电池没满电,让它充,使用普通电池 (2 ...

  5. 66-Flutter移动电商实战-会员中心_编写ListTile的通用方法

    1.界面分析 通过下图我们可以拆分成 4 部分,头部.订单标题区域.订单列表区域.ListTitle同用部分. 2.UI编写 2.1.头部 主要用到了圆形头像裁剪组件-ClipOval 顶部头像区域W ...

  6. 文件搜索命令(命令搜索)which、whereis

    一.which命令: 搜索命令所在目录(绝对路径)或者别名信息. 用户可以使用的命令存放在: /bin /usr/bin 管理员使用的命令: /sbin /usr/sbin 1.带有别名的命令: 二. ...

  7. cube.js 集成cratedb 的尝试

    cratedb 提供了pg协议的兼容,我们可以直接使用pg client 连接,但是也不是完整实现pg 协议的 以下是 cube.js 集成cratedb 的一些尝试 环境准备 docker-comp ...

  8. SQLSERVER获取数据库中的所有表的名称、表中所有字段的属性

    1.查询数据库中的所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name 2.查询某个数据库中所有的表名: SELECT Name FR ...

  9. RAdam VS Adam

    论文解读:Radam:ON THE VARIANCE OF THE ADAPTIVE LEARNING RATE AND BEYOND 1,目的 想找到一个比较好的优化器,能够在收敛速度和收敛的效果上 ...

  10. 分布式id的生成方式——雪花算法

    雪花算法是twitter开源的一个算法. 由64位0或1组成,其中41位是时间戳,10位工作机器id,12位序列号,该类通过方法nextID()实现id的生成,用Long数据类型去存储. 我们使用id ...