当前位置:网站首页>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数据
结语
边栏推荐
- Go compilation principle series 6 (type checking)
- 【MindSpore易点通机器人-01】你也许见过很多知识问答机器人,但这个有点不一样
- After Keil upgrades to AC6, what changes?
- 第六章:activiti流程分流判断之排它网关和并行网关
- Pytorch Deep Learning Quick Start Tutorial -- Mound Tutorial Notes (3)
- 2022华数杯数学建模思路分析交流
- MySQL advanced (twenty-seven) database index principle
- 基于MindSpore高效完成图像分割,实现Dice!
- Create a Dapp, why choose Polkadot?
- 皕杰报表的下拉框联动
猜你喜欢

Qiu Jun, CEO of Eggplant Technology: Focus on users and make products that users really need

Our Web3 Entrepreneurship Project, Yellow

MySQL advanced (twenty-seven) database index principle
![[Strong Net Cup 2022] WP-UM](/img/3d/caeab05ddca278af274dbf6e2f8ba1.png)
[Strong Net Cup 2022] WP-UM

How can project cost control help project success?

单片机:温度控制DS18B20

What is CRM Decision Analysis Management?

three.js调试工具dat.gui使用

NowCoderTOP35-40——持续更新ing

电竞、便捷、高效、安全,盘点OriginOS功能的关键词
随机推荐
Complete image segmentation efficiently based on MindSpore and realize Dice!
2022 Huashu Cup Mathematical Modeling Question A Optimization Design Ideas for Ring Oscillators Code Sharing
牛刀小试基本语法,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本语法和变量的使用EP02
mysql索引
dotnet OpenXML parsing PPT charts Getting started with area charts
High-quality DeFi application building guide to help developers enjoy DeFi Summer
FPGA:开发环境Vivado的使用
three物体围绕一周呈球形排列
基于MindSpore高效完成图像分割,实现Dice!
2022 Hangzhou Electric Power Multi-School Session 6 1008.Shinobu Loves Segment Tree Regular Questions
Jenkins manual (2) - software configuration
What is SPL?
[Unity] [UGUI] [Display text on the screen]
一个栈的输入序列为1 2 3 4 5 的出站顺序的理解
产品太多了,如何实现一次登录多产品互通?
uniapp connect ibeacon
QSS 选择器
数据中台建设(十):数据安全管理
Imitation SBUS fixed with serial data conversion
Is digital transformation a business buy-in?