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))
}
相关推荐
Java技术小馆6 分钟前
GitDiagram如何让你的GitHub项目可视化
java·后端·面试
ac.char11 分钟前
Golang读取ZIP压缩包并显示Gin静态html网站
golang·html·gin
Codebee23 分钟前
“自举开发“范式:OneCode如何用低代码重构自身工具链
java·人工智能·架构
程序无bug39 分钟前
手写Spring框架
java·后端
程序无bug41 分钟前
Spring 面向切面编程AOP 详细讲解
java·前端
软件黑马王子1 小时前
C#系统学习第八章——字符串
开发语言·学习·c#
全干engineer1 小时前
Spring Boot 实现主表+明细表 Excel 导出(EasyPOI 实战)
java·spring boot·后端·excel·easypoi·excel导出
Fireworkitte1 小时前
Java 中导出包含多个 Sheet 的 Excel 文件
java·开发语言·excel
GodKeyNet1 小时前
设计模式-责任链模式
java·设计模式·责任链模式
a_Dragon11 小时前
Spring Boot多环境开发-Profiles
java·spring boot·后端·intellij-idea