标识符

标识符是用来表示Go中的变量名或者函数名,以字母或_开头。后可跟着字母、数字、 _

关键字

关键字是Go语言预先定义好的,有特殊含义的标识符。

变量

1. 语法:var identifier type

举例1:

var a int
var b string
var c bool
var d int =
var e string = “hello”

举例二

var (
a int //0
b string //“”
c bool //false
d int = // 8
e string = “hello” //hello
)

举例 三

package main

import (
"fmt"
) func main(){
// 方式一
/*
var a int
var b string
var c bool
var d float32
*/ // 方式二 var(
a int
b string
c bool
d float32
) fmt.Printf("a=%d b=%s c=%t d=%f\n", a, b, c, d) a =
b = "ctz"
c = true
d = 10.36 fmt.Printf("a=%d b=%s c=%t d=%f", a, b, c, d)
}

常量

1. 常量使用const 修饰,代表永远是只读的,不能修改。常量定义时必须给定值
2. 语法:const identifier [type] = value,其中type可以省略。

举例一

const b string = “hello world”
const b = “hello world”
const Pi = 3.1414926
const a =

举例二(比较优雅的写法)

const(
a =
b =
c =
)

举例三(比较专业的写法)

const (
a = iota
b
c
) const(
a = << iota
b
c
)

举例四

package main

import  "fmt"

func main(){
/*
常量 定义时一定要给定值 不给值 报错
常量一旦定义 不可修改
*/ // 方式一
// const a int = 10
// const b = "str" // 方式二
const(
a int =
b = "str"
) fmt.Printf("a=%d b=%s\n", a , b) // 下面这种写法如果后面不给定值 则后面常量的值 和前面的一样
const (
c int =
d
e =
f
) fmt.Printf("c=%d d=%d e=%d f=%d \n", c, d, e, f)
//=200 d=200 e=300 f=300 // iota 开始为0 依次向下递增1
const(
a1 = iota
a2
a3
a4
) fmt.Printf("a1=%d a2=%d a3=%d a4=%d \n", a1, a2, a3, a4)
// a1=0 a2=1 a3=2 a4=3 const(
b1 = iota
b2 = iota
b3 = iota
b4 = iota
)
fmt.Printf("b1=%d b2=%d b3=%d b4=%d \n", b1, b2, b3, b4)
// b1=0 b2=1 b3=2 b4=3 const(
c1 = << iota
c2
c3
c4
)
fmt.Printf("c1=%d c2=%d c3=%d c4=%d \n", c1, c2, c3, c4)
//c1=1 c2=2 c3=4 c4=8
const(
d1 = << iota
d2 = << iota
d3 = << iota
d4 = << iota
)
fmt.Printf("d1=%d d2=%d d3=%d d4=%d \n", d1, d2, d3, d4)
//d1=1 d2=2 d3=4 d4=8
}

常量 练习

package main

import "fmt"

const (
a = iota
b
c
d
e =
f
g = iota
h
k
) const (
A = iota
B
C
) func main(){
fmt.Printf("a= %d\n", a)
fmt.Printf("b= %d\n", b)
fmt.Printf("c= %d\n", c)
fmt.Printf("d= %d\n", d)
fmt.Printf("e= %d\n", e)
fmt.Printf("f= %d\n", f)
fmt.Printf("g= %d\n", f)
fmt.Printf("h= %d\n", h)
fmt.Printf("k= %d\n", k)
fmt.Printf("A= %d\n", A)
fmt.Printf("B= %d\n", B)
fmt.Printf("C= %d\n", C)
}
/*
a= 0
b= 1
c= 2
d= 3
e= 8
f= 8
g= 8
h= 7
k= 8
A= 0
B= 1
C= 2
*/ /*
const() 中 如果 定义了 常量 不给定默认值 那么 该常量的表达式 和 其上一个 表达式是相同的
iota 在const 中 没经过一层 自增1
*/

go标识符、变量、常量的更多相关文章

  1. GO中标识符,标识符,变量,常量,iota

    参考:https://www.cnblogs.com/nickchen121/p/11517455.html 一.标识符与关键字 1.标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变 ...

  2. JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

    JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...

  3. Java复习3.变量.常量.String.

    Java 中的变量常量数据类型 20131004 前言: 还是国庆节,无聊的很,就没事复习点Java的知识,其实C/C++基本上是现在大型企业面试的语言,但是多学习点Java是没有坏处的,而且,将来工 ...

  4. javaSE基础之变量,常量,作用域和运算符

    变量 变量是什么? 变量是可以变化得量 Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域 type varName [=v ...

  5. Java变量, 常量和作用域

    目录 变量 作用域 局部变量 实例变量 类变量 常量 命名规范 视频课程 变量 变量就是可以变化的量 Java是一种强类型的语言, 每个变量都必须声明其类型 Java变量是程序中最基本的存储单元, 其 ...

  6. iOS开发Swift篇(01) 变量&常量&元组

    iOS开发Swift篇(01) 变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对于14年 ...

  7. C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换

    //Console.WriteLine("Hello World"); //打印显示 //Console.ReadLine(); //接收输入的值 //Console.ReadKe ...

  8. 李洪强iOS开发Swift篇---11_变量&常量&元组

    李洪强iOS开发Swift篇---11_变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对 ...

  9. PHP 获得当前页面所有变量常量的值

    get_defined_vars() - 返回由所有已定义变量所组成的数组,这个函数在二次开发的时候用起来非常给力: get_defined_constants();可以返回当前的所有常量 zend的 ...

  10. TF:Tensorflow定义变量+常量,实现输出计数功能—Jason niu

    #TF:Tensorflow定义变量+常量,实现输出计数功能 import tensorflow as tf state = tf.Variable(0, name='Parameter_name_c ...

随机推荐

  1. utuntu下安装pip&pip3

    在utuntu下建议不要使用apt-get install 安装pip,会出现很多问题. 建议使用如下方式安装: wget https://bootstrap.pypa.io/get-pip.py - ...

  2. 【C++】C++ static关键字详解

    static的作用 1.隐藏 当我们编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,其他的源文件也能访问.如,我们有源文件source1.cpp定义了一个全局变量i和函数Fu ...

  3. 第189天:BOM属性方法

    一.BOM---location 1.访问页面 location.href = "http://www.baidu.com"; location.assign("http ...

  4. SDOI2017 解题报告

    数字表格 \(T\)次询问,每次给出\(n,m(n,m\le 10^6)\),\(f\)为斐波那契数列,\(f_0=0,f_1=1\),求: \[ \prod _{i=1}^n\prod _{j=1} ...

  5. BZOJ 2141 排队(树状数组套主席树)

    解法很多的题,可以块套树状数组,可以线段树套平衡树.我用的是树状数组套主席树. 题意:给出一段数列,m次操作,每次操作是交换两个位置的数,求每次操作后的逆序对数.(n,m<=2e4). 对于没有 ...

  6. 【Java并发编程】之二:线程中断

    [Java并发编程]之二:线程中断 使用interrupt()中断线程 ​ 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一 ...

  7. 【转】NHibernate 各种数据库配置

    转载自:http://terrylee.cnblogs.com/archive/2006/04/05/367381.html 自己只用了Oracle 可用! 三.常见的配置示例 Castle网站为我们 ...

  8. 【转】Oracle 查询库中所有表名、字段名、表名说明、字段名说明

    转自 :http://gis-conquer.blog.sohu.com/170243422.html 查询所有表名:select t.table_name from user_tables t; 查 ...

  9. BZOJ3771 Triple 【NTT + 容斥】

    题目链接 BZOJ3771 题解 做水题放松一下 先构造\(A_i\)为\(x\)指数的生成函数\(A(x)\) 再构造\(2A_i\)为指数的生成函数\(B(x)\) 再构造\(3A_i\)为指数的 ...

  10. 解题:APIO 2015 雅加达的摩天大楼

    题面 分块思想+最短路 发现对于步长小的doge会连出很多边,很容易导致大量的重边,于是对doge们根据步长分块讨论:根据步长建出分层图,然后把步长不超过某个值的doge们连到对应层上的点上,其余的d ...