Java转Go学习之旅 | 语法基础

语法基础

典型的 Go 文件布局

go 复制代码
package [子句]

[任何import语句]

[实际代码]

声明变量

go 复制代码
package main

import "fmt"

func main() {
	// 声明变量
	var quantity int
	var length, width float64
	var studentName string

	// 给变量赋值
	quantity = 6
	length, width = 8.17, 12.25
	studentName = "A.M"

	// 使用变量
	fmt.Println(quantity)
	fmt.Println(studentName)
	fmt.Println(length * width)
}

如果你事先知道变量的值是什么,可以在声明变量的同一行进行赋值:

go 复制代码
package main

import "fmt"

func main() {
	// 声明变量并赋值
	var quantity int = 6
	var length, width float64 = 8.17, 12.25
	var studentName string = "A.M"

	// 使用变量
	fmt.Println(quantity)
	fmt.Println(studentName)
	fmt.Println(length * width)
}

如果声明变量的同时为其赋值,通常可以在声明中省略变量类型:

go 复制代码
package main

import (
	"fmt"
	"reflect"
)

func main() {
	// 声明变量并赋值
	var quantity = 6
	var length, width = 8.17, 12.25
	var studentName = "A.M"

	// 使用变量
	fmt.Println(reflect.TypeOf(quantity))
	fmt.Println(reflect.TypeOf(studentName))
	fmt.Println(reflect.TypeOf(length))
	fmt.Println(reflect.TypeOf(width))
}

短变量声明

go 复制代码
package main

import (
	"fmt"
	"reflect"
)

func main() {
	// 声明变量并赋值
	quantity := 6
	length, width := 8.17, 12.25
	studentName := "A.M"

	// 使用变量
	fmt.Println(reflect.TypeOf(quantity))
	fmt.Println(reflect.TypeOf(studentName))
	fmt.Println(reflect.TypeOf(length))
	fmt.Println(reflect.TypeOf(width))
}
  • 不需要明确的声明变量的类型
  • 赋给变量的值的类型成为该变量的类型

命名规则

Go 简单的规则

  • 名称必须以字母开头,并且可以有任意数量的额外的字母和数字
  • 只有名称是以大写字母开头的变量、函数或类型才被认为是可导出的:可以从当前包之外的包访问 【这就是为什么fmt.Println中的P是大写的】
  • 命名通常采用驼峰命名,例如topPriceRetryConnection

类型转换

go 复制代码
package main

import (
	"fmt"
	"reflect"
)

func main() {
	// 声明变量并赋值
	var quantity int = 6
	// 将quantity转换成float64类型
	var res = float64(quantity)
	
	// 使用变量
	fmt.Println(quantity)
	fmt.Println(reflect.TypeOf(quantity))
	fmt.Println(res)
	fmt.Println(reflect.TypeOf(res))
}
相关推荐
The_cute_cat1 分钟前
Ajax和Axios的初步学习
前端·学习·ajax
Zz_waiting.2 分钟前
Javaweb - 10.4 ServletConfig 和 ServletContext
java·开发语言·前端·servlet·servletconfig·servletcontext·域对象
全栈凯哥2 分钟前
02.SpringBoot常用Utils工具类详解
java·spring boot·后端
兮动人9 分钟前
获取终端外网IP地址
java·网络·网络协议·tcp/ip·获取终端外网ip地址
呆呆的小鳄鱼10 分钟前
cin,cin.get()等异同点[面试题系列]
java·算法·面试
独立开阀者_FwtCoder20 分钟前
"页面白屏了?别慌!前端工程师必备的排查技巧和面试攻略"
java·前端·javascript
Touper.25 分钟前
JavaSE -- 泛型详细介绍
java·开发语言·算法
amazinging28 分钟前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习
静若繁花_jingjing42 分钟前
Redis线程模型
java·数据库·redis
hello早上好1 小时前
CGLIB代理核心原理
java·spring