Go语言基本语法-变量和常量的定义和使用

Go语言基本语法

1. 定义变量

使用var关键字

  • var a,b,c bool

  • var s1,s2 string = “Hello World”

  • 可放在函数内,或直接放在包内

  • 使用var()集中定义变量

    让编译器自动决定类型

    • var a,b,i,s1,s2 = true , false, 3 , “hello” , “world”

    使用:=定义变量

    • a ,b , c ,s1,s2 := true , false, 3 , “abc”, “小米”
    • :=只能在函数内使用

    hello.go

package main

import "fmt"

//在函数外定义变量
var aa int = 10
var bb string = "小米"
var cc bool = true

func variableZeroValue() {
	// 定义变量
	var a int
	var b string
	var c bool
	fmt.Println(a, b, c)
}

func variableInitialValue() {
	//定义变量并赋值
	var a, b int = 3, 4
	var c string = "abc"
	var d bool = true
	//短变量赋值
	e := 15
	fmt.Println(a, b, c, d, e)
}

func variableTypeDeduction() {
	var a, b, c, d = 3, 5, true, "您好"
	fmt.Println(a, b, c, d)
}

//常用定义变量方法
func variableTypeShort() {
	var a, b, c, d = 3, 5, true, "您好"
	b = 5
	fmt.Println(a, b, c, d)
}

func main() {
	fmt.Println("Hello world")
	variableZeroValue()
	variableInitialValue()
	variableTypeDeduction()
	variableTypeShort()
	fmt.Println(aa, bb, cc)
}

在这里插入图片描述

2. 内建变量类型

  • bool , string
  • (u)int,(u)int8,(u)int16,(u)int32,(u)int64,uintptr
  • int,int8,int16,int32,int64
  • byte,rune(是go语言的char类型)
  • float32 , float64 , complex64 , complex128(代表复数)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

验证欧拉公式

func euler() {
	c := 3 + 4i
	fmt.Println(cmplx.Abs(c))
	fmt.Println(cmplx.Pow(math.E, 1i*math.Pi) + 1) //方法1
	fmt.Println(cmplx.Exp(1i*math.Pi) + 1)         //方法2
	fmt.Printf("%.3f\n", cmplx.Exp(1i*math.Pi)+1)  //方法2

}
func main() {
	euler()
}

在这里插入图片描述

3.强制类型转换

类型转换是强制的

在这里插入图片描述

func triangle() {
	var a, b int = 3, 4
	var c int
	//需要先将int类型转换为float64类型,然后在把float64转为int类型
	c = int(math.Sqrt(float64(a*a + b*b)))
	fmt.Println(c)
}
func main() {
	triangle()
}

在这里插入图片描述

4. 常量与枚举

4.1 常量的定义

const filename = "abc.txt"

const数值可作为各种类型使用

const a,b = 3,4

var c int = int(math.Sqrt(a*a + b*b))

示例

package main

import (
	"fmt"
	"math"
)

func costs() {
	//第一种写法
	//const filename = "abc.txt"
	//const a, b = 3, 4
	//第二种写法,可以节省代码量
	const (
		filename = "abc.txt"
		a, b     = 3, 4
	)
	var c int
	c = int(math.Sqrt(a*a + b*b))
	fmt.Println(filename, c)
}

func main() {
	costs()
}

在这里插入图片描述

4.2 使用常量定义枚举类型

package main

import (
	"fmt"
	"math"
)

func enums() {
	const (
		//java   = 0
		//php    = 1
		//javaScripts = 2
		//python = 3
		//iota表示自增值
		java = iota
		php
		javaScripts
		python
	)
	const (
		//iota还可以参与运算
		// b , kb , mb, gb , tb , pb
		b = 1 << (10 * iota)
		kb
		mb
		gb
		tb
		pb
	)
	fmt.Println(java, php, javaScripts, python)
	fmt.Println(b, kb, mb, gb, tb, pb)
}

func main() {
	enums()
}

在这里插入图片描述

4.3 定义变量要点回顾

  • 变量类型写在变量名之后

  • 编译器可推测变量的类型

  • 没有chart,只有rune

  • 原生支持复数类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值