当前位置:网站首页>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数据
结语
边栏推荐
- 第四章:redis 数组结构的set和一些通用命令「建议收藏」
- QSS 选择器
- 教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
- 2022华数杯数学建模思路分析交流
- js劫持数组push方法
- What is the function of the regular expression replaceAll() method?
- ffmpeg drawtext add text watermark
- Introduction to SD NAND Flash!
- 产品太多了,如何实现一次登录多产品互通?
- Pytorch Deep Learning Quick Start Tutorial -- Mound Tutorial Notes (3)
猜你喜欢

How can project cost control help project success?

5. Deploy the web project to the cloud server

STM32+ULN2003驱动28BYJ4步进电机(根据圈数正转、反转)

egg框架使用(二)

Create a Dapp, why choose Polkadot?

three物体围绕一周呈球形排列

数据中台建设(十):数据安全管理

Voice-based social software development - making the most of its value

mysql索引

Analysis and practice of antjian webshell dynamic encrypted connection
随机推荐
FPGA:基础入门按键控制LED灯
egg框架使用(一)
Microservice Technology Stack
第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]
Development common manual link sharing
Four years of weight loss record
IO stream articles -- based on io stream to realize folder copy (copy subfolders and files in subfolders) full of dry goods
hcip BGP enhancement experiment
uniapp 连接ibeacon
这份阿里强推的并发编程知识点笔记,将是你拿大厂offer的突破口
登录功能和退出功能(瑞吉外卖)
Getting started with Polkadot parachain development, this article is enough
IDEA performs the Test operation, resulting in duplicate data when data is inserted
2022 Hangzhou Electric Power Multi-School Session 6 1008.Shinobu Loves Segment Tree Regular Questions
Go编译原理系列6(类型检查)
JS逆向入门学习之回收商网,手机号码简易加密解析
Huawei's lightweight neural network architecture GhostNet has been upgraded again, and G-GhostNet (IJCV22) has shown its talents on the GPU
Custom filters and interceptors implement ThreadLocal thread closure
FPGA:开发环境Vivado的使用
three objects are arranged in a spherical shape around the circumference