当前位置:网站首页>A small test of basic grammar, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, basic grammar of go lang and the use of variables EP02
A small test of basic grammar, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, basic grammar of go lang and the use of variables EP02
2022-08-05 10:18:00 【InfoQ】
变量的声明与使用
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
//声明变量
var name int
name = 1
f.Println(name)
}
1
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
//声明变量
var name int
f.Println(name)
}
0
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
//声明变量
var name = 1
f.Println(name)
}
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
//声明变量
name := 1
f.Println(name)
}
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
//声明变量
name = 1
//重复赋值
name := 2
f.Println(name)
}
command-line-arguments
# command-line-arguments
.\test.go:9:2: undefined: name
> Elapsed: 1.097s
> Result: Error
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
//声明变量
var name1, name2, name3 = 1, "2", false
f.Println(name1)
f.Println(name2)
f.Println(name3)
}
1
2
false
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
//声明变量
var name = "你好"
name = 1
f.Println(name)
}
command-line-arguments
# command-line-arguments
.\test.go:11:9: cannot use 1 (untyped int constant) as string value in assignment
> Elapsed: 0.561s
> Result: Error
func main() {
var a string = "abc"
fmt.Println("hello, go lang")
}
a declared and not used
变量内存地址、占用空间大小和交换赋值
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
//声明变量
var name = "你好"
f.Println("name的内存地址是", &name)
}
name的内存地址是 0xc00003c250
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
//声明变量
var name = "你好"
a := name
f.Println("name的内存地址是", &name)
f.Println("a的内存地址是", &a)
}
name的内存地址是 0xc00003c230
a的内存地址是 0xc00003c240
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
import u "unsafe"
func main() { // 声明 main 主函数入口
a := 100
f.Println("a的地址:", &a)
f.Println("占用内存:", u.Sizeof(a))
}
a的地址: 0xc0000aa058
占用内存: 8
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
b, a := 1, 2
f.Println(&b, &a)
b, a = a, b
f.Println(b, a)
f.Println(&b, &a)
}
0xc00012c058 0xc00012c070
2 1
0xc00012c058 0xc00012c070
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
a, _ := 1, 2
f.Println("a = ", a) // 1
}
常量constant
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
const value int = 1
// value = 100 // 常量是不允许被修改的
f.Println("value = ", value)
}
const (
Unknown = 0
Female = 1
Male = 2
)
package main // 声明 main 包
import f "fmt" // 导入 fmt 包,打印字符串时需要用到
func main() { // 声明 main 主函数入口
// const来定义枚举类型
const (
// 可以在const()中添加一个关键字iota, 每行的iota都会累加1, 第一行的iota默认是0
a = iota + 1 // iota = 0
b // iota = 1
c // iota = 2
)
f.Println("a = ", a) // 1
f.Println("b = ", b) // 2
f.Println("c = ", c) // 3
}
变量作用域
//局部变量
package main
import "fmt"
//主函数
func main() {
//从这里开始主函数的局部作用域
//主函数内的局部变量
var myvariable1, myvariable2 int = 69, 145
// 显示变量的值
fmt.Printf("myvariable1 变量的值 : %d\n", myvariable1)
fmt.Printf("myvariable2 变量的值 : %d\n", myvariable2)
} // 此处主要函数的局部作用域结束
//全局变量
package main
import "fmt"
// 全局变量声明
var myvariable1 int = 100
func main() {
// 主函数内部的局部变量
var myvariable2 int = 200
//显示全局变量
fmt.Printf("全局变量 myvariable1 的值是 : %d\n", myvariable1)
//显示局部变量
fmt.Printf("局部变量 myvariable2 的值是 : %d\n", myvariable2)
//调用函数
display()
}
func display() {
// 显示全局变量
fmt.Printf("全局变量 myvariable1 的值是 : %d\n", myvariable1)
}
var和const :变量和常量的声明
var varName type 或者 varName : = value
package and import: 导入
func: 用于定义函数和方法
return :用于从函数返回
defer someCode :在函数退出之前执行
go : 用于并行
select 用于选择不同类型的通讯
interface 用于定义接口
struct 用于定义抽象数据类型
break、case、continue、for、fallthrough、else、if、switch、goto、default 流程控制
chan用于channel通讯
type用于声明自定义类型
map用于声明map类型数据
range用于读取slice、map、channel数据
结语
边栏推荐
- js hijacks the array push method
- Development common manual link sharing
- RT-Thread记录(一、RT-Thread 版本、RT-Thread Studio开发环境 及 配合CubeMX开发快速上手)
- How does the official account operate and maintain?Public account operation and maintenance professional team
- FPGA:开发环境Vivado的使用
- 多线程(进阶) - 2.5w字总结
- 第四章:activiti流程中,变量的传递和获取流程变量 ,设置和获取多个流程变量,设置和获取局部流程变量「建议收藏」
- LeetCode 216. Combined Sum III (2022.08.04)
- What is CRM Decision Analysis Management?
- SMB + SMB2: Accessing shares return an error after prolonged idle period
猜你喜欢
Meteorological data processing example - matlab string cutting matching and R language date matching (data splicing)
Egg framework usage (2)
three.js调试工具dat.gui使用
After Keil upgrades to AC6, what changes?
基于MindSpore高效完成图像分割,实现Dice!
Jenkins manual (2) - software configuration
Create a Dapp, why choose Polkadot?
STM32+ULN2003驱动28BYJ4步进电机(根据圈数正转、反转)
2022 Huashu Cup Mathematical Modeling Question A Optimization Design Ideas for Ring Oscillators Code Sharing
上位机开发C#语言:模拟STC串口助手接收单片机发送数据
随机推荐
RT-Thread记录(一、RT-Thread 版本、RT-Thread Studio开发环境 及 配合CubeMX开发快速上手)
NowCoderTOP35-40——持续更新ing
MySQL advanced (twenty-seven) database index principle
电竞、便捷、高效、安全,盘点OriginOS功能的关键词
第八章:activiti多用户任务分配
FPGA: Basic Getting Started LED Lights Blinking
电气工程的标准是什么
气象数据数据处理实例——matlab字符串切割匹配与R语言日期匹配(数据拼接)
Ali's new launch: Microservices Assault Manual, all operations are written out in PDF
FPGA: Use of the development environment Vivado
What is the function of the regular expression replaceAll() method?
three.js debugging tool dat.gui use
Handwriting Currying - toString Comprehension
2022 Hangzhou Electric Power Multi-School Session 6 1008.Shinobu Loves Segment Tree Regular Questions
Why are RELTABLESPACE values 0 for many tables displayed in sys_class?
第九章:activit内置用户组设计与组任务分配和IdentityService接口的使用
STM32+ULN2003驱动28BYJ4步进电机(根据圈数正转、反转)
浅析WSGI协议
Getting started with Polkadot parachain development, this article is enough
【Office】Microsoft Office下载地址合集(微软官方原版离线安装下载)