当前位置: 首页 > 知识库问答 >
问题:

在围棋中测试空字符串的最佳方法是什么?

单于钊
2023-03-14

对于测试非空字符串(在Go中),哪种方法是最好的(更idomatic)?

if len(mystring) > 0 { }
if mystring != "" { }

共有1个答案

夏锐藻
2023-03-14

这两种样式都在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呢? 重要说明:我想避免使用带有重音符号到非

  • 问题内容: 我需要确定一个字符串是否包含我定义的自定义集中的任何字符。 您可以使用rangeOfString确定一个字符串是否包含另一个字符串。如果您一次测试一个字符,那么这当然也适用于字符。 我想知道什么是最好的方法。 问题答案: 您可以创建一个包含自定义字符集的,然后针对此字符集测试成员资格: 斯威夫特3: 对于不区分大小写的比较,请使用 (假设字符集仅包含小写字母)。 斯威夫特2: 斯威夫特