02-Golang-变量定义和使用

简介: 02-Golang-变量定义和使用

前言

  • 本篇来学习下golang中的变量定义和使用

变量定义

  • 变量:在程序运行过程中其值能够改变的量成为变量变量存在内存中
  • 变量声明 :var 变量名 数据类型
  • 变量定义:var 变量名 数据类型=值
package main
import "fmt"
func main() {
  // 声明变量
  // 格式: var 变量名 数据类型
  var a int // 声明变量a,无初始值 默认为0
  fmt.Println(a)
}
  • 变量定义
package main
import "fmt"
func main() {
   // 定义变量
  // 格式: var 变量名 数据类型 = 变量值
  var a int = 28 // 定义变量
  fmt.Println(a)
}

命名规范

  • 只能以子母或下划线开头
  • 只能使用字母数字下划线
  • 区分大小写
  • 不能使用系统关键字
  • 见名知义
  • 小驼峰式命名法(lower camel case):第一个单词以小写字母开始;第二个单词的首字母大写,例如:aDog
  • 大驼峰式命名法(upper camel case):每一个单字的首字母都采用大写字母,例如:FilstName、LastName

自动推导类型

  • 变量名 := 变量值
package main
import "fmt"
func main() {
  // 计算圆面积和周长
  //var PI float64 = 3.1415926
  PI := 3.1415926 
  //var r float64 = 2.5
  r := 2.5
  //var s float64
  //var l float64
  // 计算面积
  //s = PI * r * r
  s := PI * r * r
  // 计算周长
  //l = 2 * PI * r
  l := 2 * PI * r
  fmt.Println("面积:", s)
  fmt.Println("周长:", l)
  // 去市场打2斤酱油,单价为 每斤  5元
  w := 2.0
  //p := 5
  var p float64 = 5
  // go语言中不同数据类型不能计算
  fmt.Println(w * p)
}

多重赋值

  • 格式 : 变量1,变量2,… = 值1,值2,…
package main
import "fmt"
func main() {
  // 格式  变量1,变量2,... = 值1,值2,...
  name, age, city := "大海", 28, "北京"
  fmt.Println(name, age, city)
  // 交换a,b值
  // 1. 通过中间值 temp
  a, b := 10, 20
  //temp := a
  //a = b
  //b = temp
  //fmt.Println(a, b)
  // 2. 加减计算
  //a = a + b
  //b = a - b
  //a = a - b
  //fmt.Println(a, b)
  // 3. 多重赋值交换变量的值
  a, b = b, a
  fmt.Println(a, b)
  // _ 匿名变量
  q, _, w := 1, 2, 3
  fmt.Println(q, w)
}

格式化输出

/*
@Time    : 2023/2/5
@Author  : 大海
*/
package main
import "fmt"
func main() {
  // Println 输出自动换行
  fmt.Println("hello go!")
  fmt.Println(666)
  fmt.Println(3.14)
  // Print 输出不自动换行
  fmt.Print("hello go!")
  fmt.Print(666)
  fmt.Print(3.14)
  // Printf
  name := "大海"
  age := 28
  c := 666
  d := 3.14159
  fmt.Printf("%s\n", name)
  fmt.Printf("%d\n", age)
  fmt.Printf("==%05d==\n", c)
  // %f 默认保留6位小数   %.3f 保留三位小数,对第4位四舍五入
  fmt.Printf("%.3f\n", d)
  // 声明 布尔类型变量,默认为false
  var test bool
  test = true
  fmt.Println(test)
  fmt.Printf("%t\n", test)
  var city string
  city = "北京"
  fmt.Printf("%s\n", city)
  var i byte
  i = 'a'
  fmt.Println(i)      // 输出ASCII码值
  fmt.Printf("%c", i) // 输出字符串
}

接收输入

/*
@Time    : 2023/2/5
@Author  : 大海
*/
package main
import "fmt"
func main() {
  //var a int
  // & 取地址运算符
  //fmt.Scan(&a)
  //fmt.Println(a)
   %p 输出一个数据对应的内存地址
  //fmt.Printf("%p", &a)
  // 空格或回车作为接收结束
  //var str string
  //fmt.Scan(&str)
  //fmt.Println(str)
  // 接收两个数据
  var s1, s2 string
  fmt.Scan(&s1, &s2)
  fmt.Println(s1)
  fmt.Println(s2)
}


相关文章
|
安全 Go PHP
Golang 语言的编程技巧之变量
Golang 语言的编程技巧之变量
37 0
|
3月前
|
Go
Golang语言基础之标识符和变量定义
这篇文章详细介绍了Go语言中标识符和变量的定义、命名规则、关键字、变量类型、声明方式、作用域等基础知识。
33 3
|
7月前
|
Go
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
【4月更文挑战第21天】Go语言函数是代码组织的基本单元,用于封装可重用逻辑。本文介绍了函数定义(包括基本形式、命名、参数列表和多返回值)、调用以及匿名函数与闭包。在函数定义时,注意参数命名和注释,避免参数顺序混淆。在调用时,要检查并处理多返回值中的错误。理解闭包原理,小心处理外部变量引用,以提升代码质量和可维护性。通过实践和示例,能更好地掌握Go语言函数。
132 1
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
|
7月前
|
Go 开发者
Golang深入浅出之-Go语言结构体(struct)入门:定义与使用
【4月更文挑战第22天】Go语言中的结构体是构建复杂数据类型的关键,允许组合多种字段。本文探讨了结构体定义、使用及常见问题。结构体定义如`type Person struct { Name string; Age int; Address Address }`。问题包括未初始化字段的默认值、比较含不可比较字段的结构体以及嵌入结构体字段重名。避免方法包括初始化结构体、自定义比较逻辑和使用明确字段选择器。结构体方法、指针接收者和匿名字段嵌入提供了灵活性。理解这些问题和解决策略能提升Go语言编程的效率和代码质量。
146 1
|
7月前
|
存储 程序员 Go
第三章 Golang变量
第三章 Golang变量
53 2
|
存储 编译器 Go
100天精通Golang(基础入门篇)——第4天: Go语言中的变量与常量详解:声明、赋值和使用
100天精通Golang(基础入门篇)——第4天: Go语言中的变量与常量详解:声明、赋值和使用
75 0
|
存储 程序员 Go
Golang-变量和常量
Golang 中的变量和常量
66 0
|
编译器 Go
golang 接口变量的赋值和方法的调用
golang 接口变量的赋值和方法的调用
golang 接口变量的赋值和方法的调用
golang 循环创建新协程,发现每次使用的循环变量都一样,都是最后一个
golang 循环创建新协程,发现每次使用的循环变量都一样,都是最后一个
golang 循环创建新协程,发现每次使用的循环变量都一样,都是最后一个
|
3月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
129 4
Golang语言之管道channel快速入门篇