首页 > 其他分享 >Go_day01

Go_day01

时间:2022-11-07 19:46:51浏览次数:48  
标签:name int day01 var Println Printf Go fmt

Go基础语法

注释

注释是为了增强代码的可读性,不会参与程序的一切功能,

go语言注释分为单行注释与多行注释

单行注释

//双斜杠 每行都要添加 //

多行注释

/* */ 一次标记多行注释输入

package main

import "fmt"

// 我是一个单行注释
// 不能换行,换行就会出错
func main() {
   /*
      我是多行注释
   可以换行哦
   */
   fmt.Println("hello,world")
   fmt.Println("hello world")
   fmt.Println("hello,world")
}

变量

变量即会变化的量

变量的定义

var name type
  • var是声明变量的关键字,固定写法 必需
  • name是变量的名字,命名规则:驼峰原则
  • type变量的数据类型
func main() {
   //name 变量
   var name string = "xue"
   var age int = 20

   name = "evan"
   //定义的变量不被使用会报错哦
   fmt.Println(name, age)
   //这里解释一下  当name被定义出来是 会为其开启一个内存空间 假设地址是001   那么 xue就是空间中存储的字符串
   // 当name重新赋值是 九八xue从空间中拿出,把evan放进去 打印name变量是指向地址001输出其中的值
}
  • 任何变量类型在不初始化下 都有自己的默认值
*
定义多个变量
*/
func main() {
   var (
      name string //默认值为空
      age  int    //默认值为0
      addr string
   )
   fmt.Println(name, age, addr)
}

变量的初始化

  • 一般通过=进行赋值
//沿用上面的代码
name = "xue"
age = 20
addr = "china"
fmt.Println(name, age, addr)
  • 也有:=的推导声明写法,编译器会自动根据右侧数据类型推断出变得的数据类型,但只能用在函数内部,不能随便到处定义

    // := 会自动推导 数据的类型
    name2 := "evan"
    age2 := "23"
    fmt.Println(name2, age2)
    //printf打印一些变量的参数 如数据类型,变量地址
    fmt.Printf("%T,%T", name2, age2)
    

打印变量参数

fmt.Printf("%T,%T", name2, age2)
//prinf打印变量参数,%T数据类型、%d数值类型的值、%p变量地址 另需要配饰使用&取出地址
fmt.Printf("%d,%p", age, &age)

变量交换

意为两个变量值的交换

func main() {
   var a int = 100
   var b int = 200
   fmt.Println(a, b)
   //交换后
   a, b = b, a //不需要再定义一个临时变量存放值
   fmt.Println(a, b)
}

匿名变量

  • 使用下划线"_" 代替变量名 称为空白标识符
  • 一旦使用此变量赋值,值都将被排期
  • 不会占用空间,也不会分配内存,可以多次使用
func test() (int, int) {
   return 100, 200
}

func main() {
   a, _ := test()
   _, b := test()
   fmt.Println(a,b)
}

这里对变量的作用域做一个简单说明:全局变量、局部变量;调用时就近原则

常量

使用const来定义常量

func main() {
   const USL string = "www.baidu.com" //显示定义
   const ADDR = "China of World"      //隐式定义,自动识别数据类型

   fmt.Println(USL, ADDR)

   const a, b, c = 23, "34", false //可以同时定义多个
   fmt.Println(a, b, c)
}

iota

一个常量计数器,特殊的常量用来给常量计数

func main() {
   //iote 只在这一组常量中有效,重新定义从0考试
   const (
      a = iota // iota 0
      b        // iota 1
      c = 23   // iota 2
      d        // iota 3
      e = "你好" // iota 4
      f        // iota 5
      g = iota // iota 6
      h        // iota 7
   )

   const (
      k = iota // iota 0
      l        // iota 1
   )

   fmt.Println(a, b, c, d, e, f, g, h, k, l)

}

打印结果
0 1 23 23 你好 你好 6 7 0 1

基本数据类型

image-20221107171830970

func main() {
   //var name string'
   //bool 布尔类型 要么true 要么false
   var isFlag bool = false
   fmt.Println(isFlag)
   fmt.Printf("%T,%t\n", isFlag, isFlag) //%t 当前的值

   // byte==uint8
   // rune==uint32
   // int==uint64
   var age int = 18
   //尽量使用float64来定义浮点数
   var money float64 = 3.14
   fmt.Printf("%T,%d\n", age, age)
   fmt.Printf("%T,%f\n", money, money) //默认保留6位小数,四舍五入保留小数

   var str string
   str = "nihao,world"
   fmt.Printf("%T,%s\n", str, str)
   //单引号字符
   v1 := 'A'
   fmt.Printf("%T,%d\n", v1, v1) //打印的时ASCII编码表上十进制的值

   fmt.Println("nihao," + "shijie")
   fmt.Println("nihao,\"shijie")
}

数据类型转换

typeA = (typeA)typeB //go语言没有隐式转换 所以都要显示声明
func main() {
   a := 6
   b := 5.00
   //将int类型转换位float64类型
   c := float64(a)
   d := int(b)

   

   fmt.Printf("%T\n", a)
   fmt.Printf("%T\n", b)
   fmt.Printf("%T\n", c)
   fmt.Printf("%T\n", d)

   //整型是不能转换位bool类型的
   str := false
   num := int(str)
   fmt.Printf("%T", num)

}

运算符

算数运算符

+,-,*,/,%(也成为取模)

func main() {
   var a int = 10
   var b int = 3

   // + - * / %
   fmt.Println(a + b)
   fmt.Println(a - b)
   fmt.Println(a * b)
   fmt.Println(a / b) //只取整哦
   fmt.Println(a % b) //取模

   a++
   fmt.Println(a)
   a--
   fmt.Println(a)

}

关系运算符

==,!=,>,<,>=,<=

一般用来判断是与不是

逻辑运算符

&&,||,!

func main() {
   var a int = 10
   var b int = 3

   // + - * / %
   fmt.Println(a + b)
   fmt.Println(a - b)
   fmt.Println(a * b)
   fmt.Println(a / b) //只取整哦
   fmt.Println(a % b) //取模
   a++
   fmt.Println(a)
   a--
   fmt.Println(a)

   var c bool = true
   var d bool = false

   //&& c与d都要满足条件才会为真
   if c == true && d == true {
      fmt.Println(c && d)
   }

   // || c与d 只要一个满足就为真
   if c == true || d == true {
      fmt.Println(c || d)
   }

   // !取反
   fmt.Println(!c) //false

}

位运算符

二进制的 0是false 1是true

& 都是1 结果才为1

| 其中一个是1 就是1

^两个相同为0 不同为1

/>> 右移 如 0010 右移1位 0001

/<< 左移 如 0010 左移1位 0100

比如 0011 1100

​ 0000 1101

&: 0000 1100 12

|: 0011 1101 61

^: 0011 0001 48

func main() {
   var a uint = 60
   var b uint = 13

   var c uint
   c = a & b
   fmt.Printf("%d,二进制%b\n", c, c)

   c = a | b
   fmt.Printf("%d,二进制%b\n", c, c)

   c = a ^ b
   fmt.Printf("%d,二进制%b\n", c, c)

   fmt.Println(a >> 2)
   a = 60
   fmt.Println(a << 2)

   a <<= b
   fmt.Println(a)
}

标签:name,int,day01,var,Println,Printf,Go,fmt
From: https://www.cnblogs.com/onlyxue/p/16867168.html

相关文章

  • Springboot中使用GSON报错 An attempt was made to call the method com.google.gso
    错误如下: Description:Anattemptwasmadetocallthemethodcom.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder;butitdoesnotexist.Itscl......
  • A simple usage of "Gobuster"
    Atoolfor enumeratingallwebpageofawebsite.=====> https://github.com/OJ/gobusterItrequeiresawordlisttomatchthenamesofthepagesinaparticu......
  • sql sever中使用go时遇到go附近有语法问题的情况
    今天在验证所学的数据库知识时遇到了下图中的问题代码最开始是直接从ppt上copy过来的,以为是全角半角字符的问题,但手输了几遍还是报错,我试着在几位同学电脑上运行了相......
  • 07-Go语言Map和String
    Map初始化 varmap1map[int]string varmap2=make(map[int]string) varmap3=map[int]string{1:"倒霉",2:"打针"} fmt.Println(map1) fmt.Println(map2==n......
  • 狂神说Go语言笔记—初识Go语言
    GO语言的环境安装下载地址Go下载-Go语言中文网-Golang中文社区(studygolang.com)安装这里很简单,可以一直点下一步就可以了环境搭建我这里也是去D盘当中创建......
  • go:快速添加接口方法及其实现
    问题描述在大型项目中,通常存在多个模块,模块对外暴露的功能通常是通过接口封装,这样可以明确模块的功能,有效降低模块与模块之间的耦合度,同时模块与模块之间进行合理的组装。......
  • linux安装mongodb 并且远程连接
    一、引言​​MongoDB​​是一个由C++语言编写的基于分布式文件存储的数据库,MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关......
  • 使用 github.com/wcharczuk/go-chart 绘图
    公共绘图函数packagechartsimport( "bytes" "log" "os" chart"github.com/wcharczuk/go-chart/v2" drawing"github.com/wcharczuk/go-chart/v2/drawing" "......
  • mongodb基本操作合集
    创建管理员账号useadmindb.createUser({user:"root",pwd:"xxxxxx",roles:[{role:"root",db:"admin"}]})其他库创建账号......
  • Window环境下,安装MongoDB
    一、下载MongoDB官网下载地址:https://www.mongodb.com/try/download/community,选择MongoDB版本,平台为Windows,本文选择的安装包格式为msi:二、安装下载完成后,双击下载的m......