go、java已经python中分号的使用
首先来可以一个简单的例子,在三种语言中的写法:
(1)python
a = 1 b = 2 if a > b: print("1>2") else: print("1<2")
在python中,一条语句结束之后,一般情况是不加分号来收尾,但是你加上分号也行,不会报语法错误。
下面代码也是可执行的:
a = 1; b = 2; if a > b: print("1>2"); else: print("1<2");
(2)java
public class Hello { public static void main(String[] args) { int a = 1; int b = 2; if (a > b) { System.out.println("1>2"); } else { System.out.println("1<2"); } } }
在java中每一条语句结尾都需要使用分号(“;”)来结尾,否则就会报语法错误。
(3)go
1 2 3 4 5 6 7 8 9 10 11 12 13 | package main import "fmt" func main() { a := 1 b := 2 if a > b { fmt.Println( "1>2" ) } else { fmt.Println( "1<2" ) } } |
在go中,与python类似,默认不加分号,加上也不会报错:
1 2 3 4 5 6 7 8 9 | func main() { a := 1; b := 2; if a > b { fmt.Println( "1>2" ); } else { fmt.Println( "1<2" ); } } |
需要注意的是,在go圣经中有这么一句话:
In effect, newlines following certain tokens are converted into semicolons, so where newlines are placed matters to proper parsing of Go code.
实际上,某些标记后面的换行符被转换成分号,因此换行符的位置关系到Go代码的正确解析。
意思就是在编译的时候会自动将换行符变成分号。
现在问题是, 什么时候会自动加入分号呢? 可以看看这个规则(注意上面英语中的certain tokens):
当输入被断开为标记时,如果行末标记为:
a. 一个标识符
b. 一个整数、浮点数、虚数、字符或字符串文字
c. 关键字break、continue、fallthrough或return中的一个
d. 运算符和分隔符++、--、)、]或}中的一个
则分号将被自动插入到标记流中非空白行的末尾
其次就是括号的使用,在java中,if判断语句必须要添加括号。而在go和python中可以加也可以不加。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了