当前位置:网站首页>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数据
结语
边栏推荐
- [Office] Collection of Microsoft Office download addresses (offline installation and download of Microsoft's official original version)
- Pytorch Deep Learning Quick Start Tutorial -- Mound Tutorial Notes (3)
- Development common manual link sharing
- js劫持数组push方法
- 这份阿里强推的并发编程知识点笔记,将是你拿大厂offer的突破口
- 高质量 DeFi 应用构建指南,助力开发者玩转 DeFi Summer
- 攻防世界-PWN-new_easypwn
- Brief Analysis of WSGI Protocol
- 单片机:温度控制DS18B20
- Egg framework usage (1)
猜你喜欢
dotnet OpenXML parsing PPT charts Getting started with area charts
Pycharm 常用外部工具
高质量 DeFi 应用构建指南,助力开发者玩转 DeFi Summer
egg框架使用(一)
MySQL transactions
Which big guy has the 11G GI and ojvm patches in April or January 2020, please help?
一文道清什么是SPL
Egg framework usage (1)
电竞、便捷、高效、安全,盘点OriginOS功能的关键词
PCB布局必知必会:教你正确地布设运算放大器的电路板
随机推荐
DFINITY 基金会创始人谈熊市沉浮,DeFi 项目该何去何从
Getting started with Polkadot parachain development, this article is enough
Tanabata romantic date without overtime, RPA robot helps you get the job done
19. Server-side session technology Session
入门 Polkadot 平行链开发,看这一篇就够了
力扣(LeetCode)216. 组合总和 III(2022.08.04)
开发常用手册链接分享
IDEA performs the Test operation, resulting in duplicate data when data is inserted
告白数字化转型时代:麦聪软件以最简单的方式让企业把数据用起来
ffmpeg drawtext add text watermark
2022 Hangzhou Electric Power Multi-School Session 6 1008.Shinobu Loves Segment Tree Regular Questions
第九章:activit内置用户组设计与组任务分配和IdentityService接口的使用
教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
使用工具类把对象中的null值转换为空字符串(集合也可以使用)
这份阿里强推的并发编程知识点笔记,将是你拿大厂offer的突破口
hcip BGP enhancement experiment
语音社交软件开发——充分发挥其价值
Is digital transformation a business buy-in?
Four years of weight loss record
【MindSpore Easy-Diantong Robot-01】You may have seen many knowledge quiz robots, but this one is a bit different