// 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. egg 连接 mysql 的 docker 容器,报错:Client does not support authentication protocol requested by server; consider upgrading MySQL client

    egg 连接 mysql 的 docker 容器,报错:Client does not support authentication protocol requested by server; con ...

  2. 【Linux】linux ln文件夹的链接(转)

    1 文件的链接ln -s a.py b.pya.py 软链接到b.py (无论 b.py 文件存在与否 都可以成功)2 文件夹的链接ln -s a ba文件夹软链接到b文件夹(b文件夹不能提前创建) ...

  3. python Tkinter的Text组件中创建x轴和y轴滚动条,并且text文本框自动更新(三)

    要求对文件边读边写并显示对话框. 1.加线程之后,必须要文件写完才显示对话框.错误代码: # encoding: utf-8 import time from Tkinter import * imp ...

  4. Servlet 容器

    Servlet容器主要是JavaWeb应用提供运行时环境,所以也可以称之为JavaWeb应用容器,或者Servlet/JSP容器.Servlet容器主要负责管理Servlet.JSP的生命周期以及它们 ...

  5. KVC and Scalar

    https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/KeyValueCoding/DataTypes. ...

  6. Substrings SPOJ - NSUBSTR (后缀自动机)

    Substrings \[ Time Limit: 100ms\quad Memory Limit: 1572864 kB \] 题意 给出一个长度为 \(250000\) 的字符串,求出所有 \(x ...

  7. JS的ES5的扩展内容

    JS的ES5 1.严格模式: (1)什么是严格模式: 在全局或函数的第一条语句定义为:  'use strict' 如果浏览器不支持, 只解析为一条简单的语句, 没有任何副作用 (2)严格模式作用: ...

  8. C++智能指针总结

    本文介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_ptr 其中后三个是c++11支持,并且第一个已经被c++11弃用. 为什么要使用智能 ...

  9. 第03组 Alpha冲刺(3/4)

    队名:不等式方程组 组长博客 作业博客 团队项目进度 组员一:张逸杰(组长) 过去两天完成的任务: 文字/口头描述: 制定了初步的项目计划,并开始学习一些推荐.搜索类算法 GitHub签入纪录: 暂无 ...

  10. nginx之rewrite相关功能

    Nginx Rewrite相关功能 Nginx服务器利用ngx_http_rewrite_module 模块解析和处理rewrite请求,此功能依靠 PCRE(perl compatible regu ...