[Go] 数据类型,变量与变量作用域,常量
// 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] 数据类型,变量与变量作用域,常量的更多相关文章
- C#的常量和变量以及其作用域和命名规范
1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须在定义的时候初始化. 语法: const 类型名 常量名=常量表达式 ...
- 010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二——变量类型——即Java中的数据类型
010 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 04 变量的三个元素的详细介绍之二--变量类型--即Java中的数据类型 Java中变量的三要素 变量名 变 ...
- 04 变量 变量作用域 常量final 变量的命名规范
变量 变量是什么:就是可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域. 注意事项: 每个变量都有类型,类 ...
- 变量、变量作用域、常量final、变量的命名规范
变量 变量是什么:就是可以变化的量! Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域. 注意事项: 每个变量都有类型,类 ...
- Java中的变量与变量的作用域
关于Java中的变量及变量的作用域 关于Java中的变量及变量的作用域 0. 变量的概念 在程序运行期间,系统可以为程序分配一块内存单元,用来存储各种类型的数据.系统分配的内存单元要使用一个标记符来标 ...
- C变量类型和作用域
C语言中所有变量都有自己的作用域,申明变量的类型不同,其作用域也不同.C语言中的变量,按照作用域的范围可分为两种, 即局部变量和全局变量. 一.局部变量 局部变量也称为内部变量.局部变量是在函数内作定 ...
- PHP语言基础(标记、注释、变量、数组、常量、函数)
PHP标记风格 1.xml风格(标准风格推荐使用) 代码如下: <?php echo"这是xml风格的标记"; ?> xml风格的标记是常用的标记,也是推荐使用的 ...
- Swift学习——变量var和let常量的用法(一)
Swift中的变量var和let常量 首先介绍一下Swift中的 var 和 let (1)var 是 variable的缩写形式,是变量的意思 ,是可改变的.并非数据类型 比如: 注意每一个语句后面 ...
- javascript变量类型及作用域
javascript变量类型及作用域 一.简介 变量类型 ECMAScript变量可能包含两种不同类型的数据值:基本类型和引用类型. 基本类型 基本类型指的是简单的数据段,5种基本数据类型:undef ...
- 020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结
020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结 本文知识点:变量与常量 知识总结 Java中的标识符 Java中的关键字 目前常 ...
随机推荐
- 线程的等待与唤醒,实现if...else里面的值交互依次输出
线程通信原理图: 资源类: package com.yonyou.sci.gateway.exec.threadnet; public class Resource { String name; St ...
- What is react-native link?
What is react-native link? or Should you just use react-native link when linking any dependency or s ...
- Atcoder Beginner Contest 138 简要题解
D - Ki 题意:给一棵有根树,节点1为根,有$Q$次操作,每次操作将一个节点及其子树的所有节点的权值加上一个值,问最后每个节点的权值. 思路:dfs序再差分一下就行了. #include < ...
- vue项目开发期间,配置webpack解决后台接口在不同服务器上的问题 之 二 ( node搭建服务 )
由于今天上午 后端人员把接口都整合都一个服务器了,所以就没有硬关注 上一篇文章的问题, 晚上回来,用node搭了一个简单服务器,测试了下,是没有问题的.代码如下: 一. 自己初始化项目, 1.pack ...
- Numpy | 01 简介
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. NumPy 是一个运行速度非常快的数学库 ...
- BZOJ 1801: [Ahoi2009]中国象棋
题目描述 //每行每列最多放两个,可以讨论第i-1行到第i行的每一种情况 #include<complex> #include<cstdio> using namespace ...
- 【luoguP4720】【模板】扩展卢卡斯
快速阶乘与(扩展)卢卡斯定理 \(p\)为质数时 考虑 \(n!~mod~p\) 的性质 当\(n>>p\)时,不妨将\(n!\)中的因子\(p\)提出来 \(n!\) 可以写成 \(a* ...
- nginx.conf 配置解析之文件结构
nginx.conf配置文件结构如下: ...... #主要定义nginx的全局配置 events{ #events(事件)块:主要配置网络连接相关 } http{ #http块:代理缓存和日志定义绝 ...
- 后台接收参数报错 Required String parameter 'id' is not present
来自:https://blog.csdn.net/qq_15238647/article/details/81539287 关于ajax请求spring后台出现 Required String par ...
- sql server查看表大小
查看SqlServer 数据库中各个表多少行 : SELECT A.NAME ,B.ROWS FROM sysobjects A JOIN sysindexes B ON A.id = B.id WH ...