这两种样式都在Go的标准库中使用。
if len(s) > 0 { ... }
可以在strconv
包中找到:http://golang.org/src/pkg/strconv/atoi.go
if s != "" { ... }
可以在encode/json
包中找到:http://golang.org/src/pkg/encoding/json/encode.go
这两种语言都很地道,也很清楚。更多的是个人品味和清晰度的问题。
Russ Cox在golang-nuts线程中写道:
使代码清晰的那个。
如果我要查看元素x,我通常会写
len(s)>x,即使对于x==0,但如果我关心
“是不是这个特定的字符串”我倾向于写s==“”。
把代码弄清楚。
正如TimMmm的回答中指出的,Go编译器在这两种情况下确实生成了相同的代码。
问题内容: 哪种方法最适合(更理想的)用于测试非空字符串(在Go中)? 要么: 或者是其他东西? 问题答案: Go的标准库中都使用了这两种样式。 可以在以下软件包中找到:http : //golang.org/src/pkg/strconv/atoi.go 可以在以下包中找到:http : //golang.org/src/pkg/encoding/json/encode.go 两者都是惯用的,而
问题内容: 我今天一直在搞递归。通常,编程技术使用不足。 我着手递归地反转一个字符串。这是我想出的: 我的问题:Java中有更好的方法吗? 问题答案: 最好的方法是不使用递归。这些内容通常用于教学生递归概念,而不是实际的最佳实践。因此,您的操作方式就很好。只是不要在Java应用中将递归用于现实应用中的此类内容;) PS。除了我刚才所说的,我将选择递归函数的基本情况:
问题内容: 我在尝试搜索字符串中的子字符串时遇到问题。该子字符串可能在字符串中也可能不在字符串中。 我知道是否可以完成的两种方法是: 正则表达式 但是,还有其他“优化”方式吗?你会怎么做? Ruby可以提供更好的答案吗?由于我们使用jRuby,因此答案可以是Ruby或Java。 问题答案: 在Ruby中,使用方法: 返回。
问题内容: 将数字转换为字符串的“最佳”方法是什么(就速度优势,清晰度优势,内存优势等而言)? 一些例子: 问题答案: 像这样: 实际上,即使我通常是为了简单方便而这样做,但 对于原始速度而言 ,似乎出现了1000多次迭代,但 对于 根据上述JSPerf测试最快: 应该注意的是,当您认为速度差异可以在0.1秒内进行1百万次转换时,速度差异并不是太大。 更新: 速度因浏览器而异。在Chrome中,根
问题内容: 我在Python中有一个Unicode字符串,我想删除所有的重音符号(变音符号)。 我在网上发现了一种用Java实现此目的的优雅方法: 将Unicode字符串转换为长规范化格式(带有单独的字母和变音符号) 删除所有Unicode类型为“变音符号”的字符。 我是否需要安装pyICU之类的库,还是仅使用python标准库就可以?那python 3呢? 重要说明:我想避免使用带有重音符号到非
问题内容: 我敢肯定,以前必须以不同的方式询问过这个问题- 因为isEmptyOrNull很常见,但人们以不同的方式实现它。但是我在最好的可用方法方面有以下好奇的查询,这对内存和性能都有好处。 1)下方不考虑所有空格,例如在XML标签为空的情况下 2)低于一保重但修剪会降低性能和记忆力 3)将两者结合可以节省一些性能和内存(克里斯在评论中建议) 4)转换为模式匹配器(仅在字符串长度不为零时调用)