Go的100天之旅-03变量
变量
变量介绍
变量这个词来源于数学,类似方程中的x、y,代表的是存储在计算机中的值。这里主要介绍Go和其它编程语言不一样的地方,在前面我们提到过,Go是一门静态语言。静态语言区别动态语言一个重要的特性就是变量的类型不可变,一般是在声明的时候就指定类型,之后就不可修改它的类型,而动态语言可以随时修改变量的类型。Go的变量可以在声明的时候不指定类型而是直接赋值,Go会自动根据值判断变量的类型,比如:
var i = 1
当然这时i的类型(int)也就确定了之后不能修改i的类型。
也可以声明的时候指定类型:
var i int
这里面的i就是int类型。如果变量声明的时候没有给定初始值,那默认就是零值,比如:
var i int
var s string
fmt.Println(i)
fmt.Println(s)
输出是:
0
这里string的零值是""。bool类型的零值是false,以后讲到的指针类型零值是nil
Go的简短形式:=声明
上面介绍过,Go可以在变量定义的时候比指定类型,系统自动判断类型,那声明的变量的时候加上var是不是感觉有点多余了。Go可以用:=这种写法直接声明变量例如:
i := 5
a := false
这时i就是int类型值为5,a就是bool类型值为false,需要注意的是它只能被用在函数中,不能全局的声明变量例如:
package main
import "fmt"
i := 1
func main() {
fmt.Println(i)
}
这样是不行的。
还有就是相同的变量,在同一个代码块中只能这样被声明一次,第二次声明也是错误的例如:
package main
import "fmt"
func main() {
i := 1
i : = 2
fmt.Println(i)
}
这样也会报错。
多变量声明
多变量声明是指一次可以声明多个变量例如
var i, j, k int
i, j, k = 0, 1, 2
var m, n = 1, 2
var a, b = 1, false
需要指出的是多个变量声明可以指定不通的类型例如上面 var a, b = 1, false
也支持:=形式的多变量声明
a, b := 1, false
只要 := 左侧出现了新的变量就可以例如:
a, b := 1, false
b, c := false, 1
Go的100天之旅-03变量的更多相关文章
- PHP内核之旅-3.变量
PHP 内核之旅系列 PHP内核之旅-1.生命周期 PHP内核之旅-2.SAPI中的Cli PHP内核之旅-3.变量 一.弱类型语言 php是弱类型语言.一个变量可以表示任意数据类型. php强大的一 ...
- Python学习--03变量类型
变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创 ...
- java基础03变量和基本数据类型
package cn.bdqn.test; /** * * @author 小豆腐 * * 变量:会变化的量?? * 一个数据在内存中存储空间的表示!在运行期间可以动态改变! * * 关键字:在jav ...
- JAVA笔记03 变量和运算符 面试题以及笔记
标识符的命名规则需要注意哪几点? 定义 就是给类,接口,方法,变量等起名字的字符序列 组成规则 英文大小写字母 数字 $和_ 注意事项 不能以数字开头 不能是java中的关键字 区分大小写 常见的命名 ...
- Java知识系统回顾整理01基础03变量03字面值
一.字面值定义 创建一个Hero对象会用到new关键字,但是给一个基本类型变量赋值却不是用new. 因为基本类型是Java语言里的一种内置的特殊数据类型,并不是某个类的对象. 给基本类型的变量赋值的 ...
- day 03 变量与基本数据类型
变量的命名规范 一:变量命名的大前提,应该能够反映出变量值所记录内容 1:变量名只能由数字,字母,下划线组成 2:变量名不能以数字开头 3:变量名不能使用系统的关键字,不然可能会报错 二:变量名的命名 ...
- Go的100天之旅-04基础数据类型
基础数据类型 在变量的定义中,我们讲了每个变量是有类型的,类型在计算机中是用来约束数据的解释.Go语言和其它计算机语言一样,提供丰富了丰富的数据类型,我们就来看看到底有哪些类型,同时也可以比较一下它和 ...
- Go的100天之旅-02基本语法
基本语法 Go关键字 下面是Go的25个关键字: break default func interface select case defer go map struct chan else goto ...
- Go的100天之旅-常量
常量 简介 道可道,非常道.这里常道指的永恒不变的道理,常有不变的意思.顾名思义和变量相比,常量在声明之后就不可改变,它的值是在编译期间就确定的. 下面简单的声明一个常量: const p int = ...
随机推荐
- Linux 半连接队列,全连接队列
socket 中 listen api中参数backlog指定的是 全队列大小 accept api是从全队列中获取, 没有就阻塞了, 直到有新连接进来. listen中指定的值大小,有一个最大上限, ...
- 机器学习——打开集成方法的大门,手把手带你实现AdaBoost模型
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第25篇文章,我们一起来聊聊AdaBoost. 我们目前为止已经学过了好几个模型,光决策树的生成算法就有三种.但是我们每 ...
- Java WebService学习笔记 - Axis进阶(二)
上一篇 Java WebService学习笔记 - Axis(一) 前一篇博文中简单介绍了Axis的使用方法,这篇将介绍一些Axis的一些高级特性 Axis中Handler的使用 Handler ...
- Python 简明教程 --- 19,Python 类与对象
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 那些能用计算机迅速解决的问题,就别用手做了. -- Tom Duff 目录 上一节 我们介绍了Pyt ...
- python解析json文件信息到csv中
json格式多种多样,本代码着重看函数部分 import json, csv, os import pandas as pd josns_root = 'jsons' csvs_root = 'csv ...
- Package Control:There are no packages available for installation
百度推荐的sublime3,里面好多全家桶,注意安装. 我的问题报错是:Package Control:There are no packages available for installation ...
- CentOS下安装python3环境及pypy环境
安装前基础环境 1. win7虚拟机CentOS7.6系统 2. 网络环境通过NAT方式 3. 已经配置到yum仓库并系统自带有python2.7 安装前准备 1. python3.6.5源码包:ht ...
- 洛谷 P1828 【香甜的黄油 Sweet Butter】
这道题应该就是模板题了吧qwq. 统计每一个牧场的放糖的情况,选择最优的即可 有亿点水的绿题. #include <bits/stdc++.h> using namespace std; ...
- 什么是JSTL标签库?
什么是JSTL? JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的. 有什么作用? ...
- 使用selenium抓取淘宝信息并存储mongodb
selenium模块 简单小例子 Author:song import pyquery from selenium import webdriver from selenium.common.exce ...