[易学易懂系列|golang语言|零基础|快速入门|(四)]
2024-10-07 06:03:33
今天开始,我们来写代码。
学习一门语言,最快的方式就是写代码,做项目。
别的学习教程,都是hello world.
我们就来点不一样的吧。我们不一样!不一样!不一样!
首先,打开VSCODE.( 关于VSCODE配置,见:https://www.jianshu.com/p/83beca927c9e,https://zhuanlan.zhihu.com/p/59879132)
写代码:
package main
var x, y int
var ( // 这种因式分解关键字的写法一般用于声明全局变量
a int
b bool
)
var c, d int = 1, 2
var e, f = 123, "hello"
//这种不带声明格式的只能在函数体中出现
//g, h := 123, "hello"
func main(){
g, h := 123, "hello"
println(x, y, a, b, c, d, e, f, g, h)
}
输出结果为:
0 0 0 false 1 2 123 hello 123 hello
我们来一一说明:
1)var x, y int
这里通过var关键词,来定义变量 x,y,并且golang自动赋值为0.所以结果打印都为:0
2)var (
a int
b bool
)
这种声明方式,一般用在全局变量。其中bool为布尔值,默认值为:false.
3)var c, d int = 1, 2
golang可以定义多个变量的类型,并为变量赋值。
4)var e, f = 123, "hello"
golang也可以对不同类型的变量,同时赋值,并自动推导类型,这个就是:编译器推导类型的格式。
var 的变量声明还有一种更为精简的写法,例如:
- hp := 100
这是Go语言的推导声明写法,编译器会自动根据右值类型推断出左值的对应类型。
注意:由于使用了
:=
,而不是赋值的=
,因此推导声明写法的左值变量必须是没有定义过的变量。若定义过,将会发生编译错误。
5)g, h := 123, "hello"
这种不带声明格式的只能在函数体中出现。
短变量声明的形式在开发中的例子较多,比如:
- conn, err := net.Dial("tcp","127.0.0.1:8080")
net.Dial 提供按指定协议和地址发起网络连接,这个函数有两个返回值,一个是连接对象(conn),一个是错误对象(err)。如果是标准格式将会变成:
- var conn net.Conn
- var err error
- conn, err = net.Dial("tcp", "127.0.0.1:8080")
因此,短变量声明并初始化的格式在开发中使用比较普遍。
注意:在多个短变量声明和赋值中,至少有一个新声明的变量出现在左值中,即便其他变量名可能是重复声明的,编译器也不会报错,代码如下:
- conn, err := net.Dial("tcp", "127.0.0.1:8080")
- conn2, err := net.Dial("tcp", "127.0.0.1:8080")
上面的代码片段,编译器不会报 err 重复定义。
以上代码,全部可运行。建议用IDE写代码并运行。
最新文章
- Provider:SSL Provider,error:0-等待的操作过时
- 从零开始学Python第0周:Python基本介绍(部分内容来源于网络)
- java中的全等和相似
- 【定时任务|开机启动】Windows Server 2008/2012 计划任务配置(任务计划程序)每分钟执行BAT
- Android FM模块学习之四源码学习(2)
- java,UDP协议简单实现
- jstl的mavin依赖
- VS2012打包部署Winform程序
- TypeHandler的简单实例
- (转)Building MariaDB on Mac OS X using Homebrew
- 移植MonkeyRunner的图片对比和获取子图功能的实现-Appium篇
- ajaxUploadFile在IE9等IE浏览器,上传变json下载的问题解决(SpringMVC + ajaxUploadFile)
- hihocoder 1054 滑动解锁 dfs
- [转帖]流程控制:for 循环
- DB2读取CLOB字段-was报错:操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null
- 关于 pyspider Web预览界面太小的解决方法
- 两类传输协议:TCP,UDP
- JS之JSON.parse和JSON.stringify
- day18(javaEE三大组件之一servlet(简介(一)))
- Deep Photo的TensorFlow版本