美文网首页
golang入门到放弃:1.变量和基本类型

golang入门到放弃:1.变量和基本类型

作者: 不留余白 | 来源:发表于2020-07-02 11:53 被阅读0次

变量的定义和声明

    var a int = 123 //定义
    var b int  //声明

定义:声明的同时给变量赋值了
声明:只是告诉了变量类型,没有赋值

  • 自动推导类型的精髓

    语法 tmp := "ccc" 定义的时候使用 省掉了var 关键字来声明如

    var PI float64 =3.14159 可以用 PI:=3.14159 来代替,
    自动推导类型会根据变量第一次赋值的情况判断数据类型并分配内存空间,
    之后就不允许再更改变量的类型了

多重赋值

a,b,c,d:=2,3.14159,"hello",true
fmt.Println(a,b,c,d)
//2 3.14159 hello true

在自动推导类型的基础上一次定义多个变量
交换a,b值的两种写法

 //方法一 常规写法
 a,b:= 1,2
 tmp:= a
 a = b
 b= tmp
 fmt.Println(a,b)//2 1

 //新的方式...
 c,d:= 1,2
 c,d=d,c
 fmt.Println(c,d)//2 1

格式输出

fmt.Printf(format,var)
%d 整形(int), %3d表示输出的var会是3位数,如果不足3位 会用空格补齐
%f 浮点型,%.3f表示输出保留3位小数,如果超出会四舍五入,如果不足用0补齐
%t 布尔型
%s 字符串型
%c 字符型 必须用'' 单引号,如果用双引号就会被认为是字符串型,格式化输出的时候就应该使用%s

a:='a'
fmt.Printf("%c\n",a)//a
fmt.Println(a)//97
   
b:="b"
fmt.Printf("%c\n",b)//%!c(string=b)
fmt.Println(b)//b
fmt.Printf("%s\n",b)//b

格式化输入

fmt.Scan(内存地址)
eg:

var tmp float64
fmt.Scan(&tmp)
fmt.printf("%f",tmp)

eg:

package main

import "fmt"

func main01() {
    fmt.Println("hello world")
}

//变量的声明
func main() {
    //var 变量名 类型
    var age int
    var name string
    var weight float64
    var height float32 = 1.88
    var code byte
    var ifMale bool

    age = 10
    name = "小明"
    weight = 60.00
    ifMale = true
    code = 'a'

    fmt.Println(age, name, weight, height, ifMale, code) //10 小明 60 1.88 true 97
    //格式化输出
    fmt.Printf("%c\n", code) //a

    //自动推导变量类型
    school := "上海虹桥一中"
    grade := 9
    class := 1

    fmt.Println(school, grade, class)//上海虹桥一中 9 1

    //快速交换两个变量的值
    grade, class = class, grade
    fmt.Println(grade, class)//1 9

    //多重赋值
    var a, b, c, d = 1, "2", false, '4'
    fmt.Println(a, b, c, d)//1 2 false 52

    //多重赋值自动推导
    e, f, g, h := 6, "7", true, '8'
    fmt.Println(e, f, g, h)//6 7 true 56

    //匿名变量
    _,h,_,i:=9,10,11,12
    fmt.Println(h,i)//匿名变量 10 12

}

相关文章

网友评论

      本文标题:golang入门到放弃:1.变量和基本类型

      本文链接:https://www.haomeiwen.com/subject/ixmwwqtx.html