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))
}
相关推荐
AAA修煤气灶刘哥3 分钟前
缓存这「加速神器」从入门到填坑,看完再也不被产品怼慢
java·redis·spring cloud
一川月白7094 分钟前
51单片机---硬件学习(跑马灯、数码管、外部中断、按键、蜂鸣器)
单片机·学习·51单片机·外部中断·蜂鸣器·数码管·跑马灯
练习时长一年9 分钟前
Spring事件监听机制(三)
java·后端·spring
月阳羊9 分钟前
【硬件-笔试面试题-69】硬件/电子工程师,笔试面试题(知识点:电机驱动电路的反馈电路)
java·经验分享·嵌入式硬件·面试
励志不掉头发的内向程序员14 分钟前
STL库——二叉搜索树
开发语言·c++·学习
2301_7813925218 分钟前
用spring框架实现简单的MVC业务
java·后端·spring
phltxy23 分钟前
SpringMVC 程序开发
java·后端·spring
至此流年莫相忘27 分钟前
设计模式:模板方法模式
java·开发语言·设计模式
人机10130 分钟前
Spring Security - FilterChainProxy
java
SimonKing1 小时前
Apache Commons Math3 使用指南:强大的Java数学库
java·后端·程序员