先简单了解一下控制台输出,在go中,我们使用fmt包中的函数进行在控制台中打印,一般用以下几个函数

     fmt.Print()        #不换行输出

     fmt.Printf()       #字符串格式化输出 同C语言

     fmt.Println( )     #带换行输出

     fmt.Fprintf()   fmt.Fprint()    fmt.Fprintln()   #指定输出流

 1.Go变量声明和赋值 

     var valName type    // 单个

     var (                        //多个

valName1 type

        valName2 type

       .......

     )

变量声明标准格式

Go语言的变量声明的标准格式为:

       var 变量名 变量类型

变量声明以关键字 var 开头,后置变量类型,行尾无须分号。

package main

import "fmt"

// 声明变量
// var name string
// var iB int // 批量声明
var (
name string //""
age int //0
isFlag bool //false
)
/*
*注意:
*声明了全局变量可以不使用,编译器不会报错(因为别人用这个包可能会使用)
*声明了局部变量必须使用,否则编译器报错
*
*go fmt xxx.go 命令可以格式化代码
*/ //str4 := "cuowu" //出错 func main() {
// 1.赋值
name = "jadeshu"
age = 20
isFlag = true fmt.Print(name)
fmt.Println()
fmt.Println(isFlag)
fmt.Printf("age:%d", age) // 2.变量声明并赋值
var str string = "hehehe"
fmt.Println(str)
// 自动根据数值进行推导类型
var str2 = "hahhahh"
fmt.Println(str2) // 3.简单变量声明并赋值
// 只能在局部变量进行短声明赋值 用的较多
// 不能重复声明,且必须声明时赋值
str3 := "heaaaa" // 这个情况下可以,只要简单赋值语句里有一个变量是新声明的就可以
// 同时还能改变原有变量的值
str3, str4 := "1212", "sdsdsd"
fmt.Println(str3)
fmt.Println(str4)
// 4.匿名变量 用一个下划线表示
// 当忽略某个值时就用它
// 它不会占用内存,也不存在重复声明
// GO语言中函数可以返回多个值,这时候很有用
a, _ := ret() // 忽略返回的y值
fmt.Println(a)
} func ret() (x,y int) {
return 10,-1
}

输出结果:

 2.Go常量和iota

   const   valName=xxx    // 单个

     const   (                        //多个

valName1=xx

        valName2=xxx

       .......

     )

package main

import "fmt"

// 常量在运行期间不允许值改变
// 一个常量声明
const PI = 3.14 // 多个常量一起声明
const (
DIR = 2 * PI
) // t1 t2是100 t3 t4是200
// 同时声明多个常量时,如果省略了值则表示和上面一行的值相同
const (
t1 = 100
t2
t3 = 200
t4
) // iota是go语言的常量计数器
// const中每新增一行常量声明将使iota计数一次
// iota可以理解为const语句块中的行索引,
// 使用iota能简化定义,在定义枚举时很有用
const (
m1 = iota
m2
m3
) // 增强理解iota
const (
n1 = 10
n2
n3 = iota
n4
) // 增强理解iota
// 多个
const (
s1, s2 = iota+1, iota+2
s3, s4 = iota+1, iota+2
) // 练习
// const (
// _ = iota
// KB = 1 << (iota*10)
// MB = 1 << (iota*10)
// GB = 1 << (iota*10)
// TB = 1 << (iota*10)
// PB = 1 << (iota*10)
// ) func main() {
fmt.Println(DIR)
fmt.Println(t1)
fmt.Println(t2)
fmt.Println(t3)
fmt.Println(t4)
fmt.Println("============") fmt.Println(m1)
fmt.Println(m2)
fmt.Println(m3)
fmt.Println("============") fmt.Println(n1)
fmt.Println(n2)
fmt.Println(n3)
fmt.Println(n4)
fmt.Println("============") fmt.Println(s1)
fmt.Println(s2)
fmt.Println(s3)
fmt.Println(s4)
fmt.Println("============")
}

结果:

=======================================

package main

import "fmt"

func main() {
//// 随机数种子
//rand.Seed(time.Now().UnixNano())
//
//scoreMap := make(map[string]int, 200)
//for i := 0; i < 100; i++ {
// key := fmt.Sprintf("student%02d", i)
// scoreMap[key] = rand.Intn(100)
//}
//
//fmt.Println(scoreMap)
//
//// 排序map的key
//// 按字符串排序
//keys := make([]string, 0, 100)
//for key := range scoreMap {
// keys = append(keys, key)
//}
//
//sort.Strings(keys)
//// 打印
//for _, key := range keys {
// fmt.Println(key, scoreMap[key])
//}
//var mapSlice = make([]map[string]string, 3)
//for index, value := range mapSlice {
// fmt.Printf("index:%d value:%v\n", index, value)
//}
//
//fmt.Println("after init")
//// 对切片中的map元素进行初始化
//mapSlice[0] = make(map[string]string, 10)
//mapSlice[0]["name"] = "小王子"
//mapSlice[0]["password"] = "123456"
//mapSlice[0]["address"] = "沙河"
//for index, value := range mapSlice {
// fmt.Printf("index:%d value:%v\n", index, value)
//} // 端口:【address,ip】
info := make(map[int]map[string]string, 3)
info[8080] = make(map[string]string,4)
info[8080]["address"] = "上海"
info[8080]["ip"] = "127.0.0.1"
info[6060] = make(map[string]string,4)
info[6060]["address"] = "北京"
info[6060]["ip"] = "192.168.0.101"
fmt.Println(info) testInfo:= &map[int]map[string]string{
6000:{
"address":"香港",
"ip":"127.0.0.1",
},
7000:{
"address":"武汉",
"ip":"127.0.0.1",
},
} fmt.Println(testInfo) }

(1)Go变量声明、赋值和常量的更多相关文章

  1. javascript:变量声明&&赋值的提升和函数声明&&定义的提升在不同情况下的表现

    console.log(a); //undefined console.log(show); //函数的定义 show();         //aaa123 var a = 1; function ...

  2. [Golang学习笔记] 04 程序实体1 变量声明

    变量声明: Go语言的程序实体包含:变量.常量.函数.结构体和接口,是一门静态类型的编程语言. (在声明变量或常量的时候,需要指定类型,或者给予足够信息是的Go语言能够推导出类型) Go语言变量的类型 ...

  3. es6变量声明和解构赋值

    /*声明: * 本文内容多为学习借鉴性内容,大部分非原创 * 特别感谢阮一峰的 ECMAScript6 入门,推荐大家学习 */ 一.es5变量声明的不足 1.变量提升和函数声明提升 es5的代码加载 ...

  4. ES6必知必会 (一)—— 变量声明和结构赋值

    本文章属于个人对es6一些比较常用的语法的总结归纳,其主要参考阮一峰大神的<a href="http://es6.ruanyifeng.com//">ECMAScrip ...

  5. Java变量声明和赋值

    Java的8种基础类型变量声明,在得到Java 11支持后会有新的语法糖 基础数据类型一共有8种 整数类型:byte.short.int和long 小数类型:float和double 字符类型:cha ...

  6. main方法中声明8种基本数据类型的变量并赋值

    main方法中声明8种基本数据类型的变量并赋值  char→  int→ long→ float→ double byte→ short→ 

  7. [BS-00] const限定常量或者变量(初次赋值后),其值不允许被改变

    CONST(C中的CONST) const是一个C语言(ANSI C)的关键字,它限定一个变量不允许被改变,产生静态作用.使用const在一定程度上可以提高程序的安全性和可靠性.另外,在观看别人代码的 ...

  8. js变量声明与赋值以及函数声明

    if (!("a" in window)) { var a = 1; } alert(a); 结果:undefined 分析: 首先,所有的全局变量都是window的属性,语句 v ...

  9. 第3章 Java语言基础----声明成员变量,对变量进行赋值

    声明成员变量,对变量进行赋值的正确语句,如下图所示:

随机推荐

  1. 强大的VIM

    个人感觉,vim用熟了,比任何编辑器都好用,VIM的许多特性节省了时间和击键次数,并可以完成一些其他编辑器无法完成的功能,这里在网上找了几个经典案例,记录一下. 与大部分其它编辑器不同,进入 Vim ...

  2. centos没有service命令的恢复方法(-bash: service: command not found)

    转载自:https://blog.csdn.net/u014175572/article/details/53375049?utm_source=itdadao&utm_medium=refe ...

  3. 造成thrift 编译构建项目失败的原因之一:thrift环境变量没设置

    由于重装了系统和IDEA工具,打开原项目时使用install 构建使用thrift 协议的项目时失败.下面是说说我遇到的问题 看下图,就是构建时控制台输出的日志,因为是乱码,当时没重视,就先去检查po ...

  4. NSLog的各种打印格式符和打印CGRect相关结构体

    1.打印CG开头的数据类型,如CGRect,CGSize等方法 1.1 打印CGRect : NSLog(@"%@", NSStringFromCGRect(someCGRect) ...

  5. org.apache.shiro.session.UnknownSessionException: There is no session with id [xxxx]的解决方案

    org.apache.shiro.session.UnknownSessionException: There is no session with id [xxxx]的解决方案 背景描述 Sprin ...

  6. 本地ssh快速登录

    每次登录都要ssh -p wang@xx.xx.xx.xx 虽然做了公钥验证 https://www.cnblogs.com/php-linux/p/10795913.html 不需要输入密码,但是每 ...

  7. python中的debug

    python中有很多的debug方法,大部分新人忽略了Python debugger(pdb)的重要性. 1.命令行运行 在终端中输入命令行   python -m pdb helloword.py ...

  8. pandas数据处理

    首先,数据加载 pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,期中read_csv和read_table这两个使用最多. 1.删除重复元素 使用duplicated()函数 ...

  9. idea中添加多级父子模块

    在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了Project和Module这两个概念. 在 IntelliJ IDEA 中Projec ...

  10. Kotlin扩展深入解析及注意事项和可见性

    可见性[Visibility]: 在Java中的可见性有public.protected.private.default四种,而在Kotlin中也有四种:public.protected.privat ...