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)
}


相关文章
|
9月前
|
安全 Go PHP
Golang 语言的编程技巧之变量
Golang 语言的编程技巧之变量
18 0
|
2月前
|
Go
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
【4月更文挑战第21天】Go语言函数是代码组织的基本单元,用于封装可重用逻辑。本文介绍了函数定义(包括基本形式、命名、参数列表和多返回值)、调用以及匿名函数与闭包。在函数定义时,注意参数命名和注释,避免参数顺序混淆。在调用时,要检查并处理多返回值中的错误。理解闭包原理,小心处理外部变量引用,以提升代码质量和可维护性。通过实践和示例,能更好地掌握Go语言函数。
37 1
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
|
2月前
|
Go 开发者
Golang深入浅出之-Go语言结构体(struct)入门:定义与使用
【4月更文挑战第22天】Go语言中的结构体是构建复杂数据类型的关键,允许组合多种字段。本文探讨了结构体定义、使用及常见问题。结构体定义如`type Person struct { Name string; Age int; Address Address }`。问题包括未初始化字段的默认值、比较含不可比较字段的结构体以及嵌入结构体字段重名。避免方法包括初始化结构体、自定义比较逻辑和使用明确字段选择器。结构体方法、指针接收者和匿名字段嵌入提供了灵活性。理解这些问题和解决策略能提升Go语言编程的效率和代码质量。
41 1
|
9月前
|
存储 编译器 Go
100天精通Golang(基础入门篇)——第4天: Go语言中的变量与常量详解:声明、赋值和使用
100天精通Golang(基础入门篇)——第4天: Go语言中的变量与常量详解:声明、赋值和使用
51 0
|
12月前
|
存储 程序员 Go
Golang-变量和常量
Golang 中的变量和常量
45 0
|
编译器 Go
golang 接口变量的赋值和方法的调用
golang 接口变量的赋值和方法的调用
golang 接口变量的赋值和方法的调用
golang 循环创建新协程,发现每次使用的循环变量都一样,都是最后一个
golang 循环创建新协程,发现每次使用的循环变量都一样,都是最后一个
golang 循环创建新协程,发现每次使用的循环变量都一样,都是最后一个
|
Go Python
化整为零优化重用,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang函数的定义和使用EP07
函数是基于功能或者逻辑进行聚合的可复用的代码块。将一些复杂的、冗长的代码抽离封装成多个代码片段,即函数,有助于提高代码逻辑的可读性和可维护性。不同于Python,由于 Go lang是编译型语言,编译之后再运行,所以函数的定义顺序无关痛痒。
化整为零优化重用,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang函数的定义和使用EP07
|
存储 Java Go
借问变量何处存,牧童笑称用指针,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang类型指针(Pointer)的使用EP05
指针是指什么?指针是存储另一个变量的内存地址的变量。变量是一种使用方便的占位符,用于引用计算机内存地址,一个指针变量可以指向任何一个值的内存地址它指向那个值的内存地址。类比的话,指针就是书籍中的目录,本身也占据书页,既可以通过目录获得章节内容,又可以指向具体章节的页数(地址)。
借问变量何处存,牧童笑称用指针,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang类型指针(Pointer)的使用EP05
|
存储 Java Linux
知识分享之Golang——Bleve中如何定义一个自定义文档映射对象
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
93 0
知识分享之Golang——Bleve中如何定义一个自定义文档映射对象