java - 这里的“s:”是什么意思?
问题描述
我正在尝试使用 parseDouble() 将字符串值解析为双精度类型。Parse double 接受我使用 getText() 传递给它的字符串。但它不起作用。然后我用双引号将它连接起来。它现在正在工作。但我在这里有一个困惑。尽管它接受一个字符串并且 getText() 当然是获取一个字符串,但为什么它在没有连接的情况下无法工作。编写语句后,编译器添加了“s:”。我也想知道这在这里意味着什么。我正在使用 Android Studio 3.5.0.0
我努力了:
val1=Double.parseDouble(ioTxt.getText());
但这不起作用。
正确的说法是:
val1 = Double.parseDouble(s: ioTxt.getText()+"");
ioTxt 是一个文本视图。Val1 是 double 类型的变量。s:是编译器添加的东西,它不是上面写的语法和语句的一部分
如果写入 toString() 而不是串联,上述语句也可以很好地工作。这是:
val1 = Double.parseDouble(ioTxt.getText().toString());
但我还是不明白为什么它需要 toString() 才能正常工作。
我希望在不使用引号或 toString() 连接的情况下使用它。
解决方案
但我还是不明白为什么它需要 toString() 才能正常工作。
Double.parseDouble()
接受一个类型的参数String
。
该getText()
方法显然返回 a 以外的内容String
,因此您需要进行转换。
附加一个空字符串是一种强制String
转换的 hacky 方法(+
带有一个String
参数的运算符隐式调用toString()
另一个参数)。更喜欢显式toString()
调用。
's:' 只是 所使用的参数名称,parseDouble()
并由您的 IDE 显示为提示。它实际上并没有修改您的源代码。
推荐阅读
- angular - 如果选中一个复选框,则其他复选框在角度 6 中被禁用
- reactjs - Material Top Tab Navigator 与状态栏重叠。有什么办法解决吗?
- c - c 带数组的函数
- java - 在 Parent 和 Child 中类似方法签名的情况下的 Java 行为
- javascript - 为什么添加 console.log 语句会阻止测试超时?
- google-chrome - 在 url 中使用别名时 NTLM 而不是 Kerberos 和 Chrome 版本 69
- html - CSS - 使复选框和长描述内联
- jsf - PrimeFaces 6.1 中rich:extendedDataTable 的替代方案
- c++ - MS Word ShapeNode 坐标无法获取
- javascript - 如何在 React 中创建下拉菜单?