包、变量、函数

目录

1.包

2.函数

3.变量

4.基本数据类型

5.类型转换

①数值类型之间的相互转换

②其他类型转string类型

③string转其他类型

6.常量


1.包

每个go程序都由包组成,程序从main包开始运行,通过import导入需要使用的包

package main

import "fmt"
import "math/rand"
/*
    导入多个包时也可用
    import(
        "fmt"
        "math/rand"
    )
代替
*/
func main() {
	fmt.Println("My favorite number is", rand.Intn(10))
    //引用包的方法时需要首字母大写(方法大写相当于公共方法)
}

2.函数

函数可以没有参数或者接收多个参数

package main

import "fmt"

func add(x int, y int) int {
	return x + y
}

func main() {
	fmt.Println(add(42, 13))
}

//输出结果为55

当连续多个参数数据类型相同时,除了最后一个参数,其他参数可以省略类型

package main

import "fmt"

func add(x, y int) int {
	return x + y
}

func main() {
	fmt.Println(add(42, 13))
}

函数可以返回任意数量的返回值

package main

import "fmt"

func swap(x, y string) (string, string) {
	return y, x
}

func main() {
	a, b := swap("hello", "world")
	fmt.Println(a, b)
}

//输出为world hello

Go 的返回值可被命名

没有参数的 return 语句返回已命名的返回值。也就是直接返回

package main

import "fmt"

func split(sum int) (x, y int) {
	x = sum * 4 / 9
	y = sum - x
	return
}

func main() {
	fmt.Println(split(17))
}

//输出为10

3.变量

var 语句用于声明一个变量列表,跟函数的参数列表一样,类型在最后

package main

import "fmt"

var c, python, java bool

func main() {
	var i int
	fmt.Println(i, c, python, java)
}

//输出为0 false false false(声明完变量后有零值)
/*
数值类型为 0,
布尔类型为 false,
字符串为 ""(空字符串)
*/
/*使用如下定义多个变量
var (
	a int
	b string
)
*/

变量声明可以包含初始值,每个变量对应一个

如果初始化值已存在,则可以省略类型;变量会从初始值中获得类型

package main

import "fmt"

var i, j int = 1, 2

func main() {
	var c, python, java = true, false, "no!"
	fmt.Println(i, j, c, python, java)
}

//1 2 true false no!

也可以直接使用:=来声明变量并赋值(类型推导)但不能在函数体外使用

package main

import "fmt"

//name := 2会报错

func main() {
	var i, j int = 1, 2
	k := 3
	c, python, java := true, false, "no!"

	fmt.Println(i, j, k, c, python, java)
}

4.基本数据类型

bool

string

int  int8  int16  int32  int64              
uint uint8 uint16 uint32 uint64 uintptr

//int, uint 和 uintptr 在 32 位系统上通常为 32 位宽,在 64 位系统上则为 64 位宽

byte // uint8 的别名

rune // int32 的别名
    // 表示一个 Unicode 码点

float32 float64

complex64 complex128 //复数

5.类型转换

①数值类型之间的相互转换

表达式 T(v) 将值 v 转换为类型 T

var i int = 42
var f float64 = float64(i)
var u uint = uint(f)

②其他类型转string类型

1.Sprintf(int为%d,float为%f,bool为%t,byte为%c)
例:strs = fmt.Sprintf("%d",i)

2.strconv方法
①int转string        strconv.Itoa(a int)
②float转string
    参数1:要转换的值
    参数2:格式化的类型
        'b'(-ddddp±ddd,二进制指数)
        'e'(-d.dddde±dd,十进制指数)
        'E'(-d.ddddE±dd,十进制指数)之一)
        'f'(-ddd.dddd,无指数)
        'g'('e' 表示大指数,否则为 'f')
        'G'('E' 表示大指数,否则为 'f')
    参数3:保留的小数点(特殊精度 -1 使用所需的最少位数)
    参数4:格式化的类型(32、64)
    strconv.FormatFloat(num,'f',2,64)
③bool转string        strconv.FormatBoll(b bool)
④int64转string       strconv.FormatInt(num,10)第二个参数为进制

③string转其他类型

1.string转int
func ParseInt(s string , base int , bitSize int ) (i int64 , err error )
base 16 表示“0x”,base 8 表示“0”,否则为 base 10

例 v,_ = strconv.ParseInt(s , 10 , 64) (_为返回的error)

2.string转float
func ParseFloat(s string , bitSize int ) (f float64 , err error )

例 v,_ = strconv.ParseFloat(str , 64)

3.string转bool
func ParseBool(str string) (value bool, err error)

例 v,_ = strconv.ParseBool("true")

4.string转字符

for _,r := range s{//_为下标
    fmt.Printf("%v" , r)
}

6.常量

常量的声明与变量类似,只不过是使用 const 关键字。

常量可以是字符、字符串、布尔值或数值。

常量不能用 := 语法声明

const pi = 3.14
const(
    a = 1
    b = "abc"
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值