- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我找到了 FizzBuzz 测试的 codegolf 答案,经过一番检查后,我意识到我不知道它实际上是如何工作的,所以我开始调查:
for(int i=1; i<101;i++)
System.Console.Write($"{(i%3*i%5<1?0:i):#}{i%3:;;Fizz}{i%5:;;Buzz}\n");
我将其放入 dotnetfiddle 并确定第一部分的工作原理如下:
{(BOOL?0:i):#}
当 BOOL 为 true 时,条件表达式返回 0,否则返回数字。
但是,除非是 <> 0
,否则不会返回该数字。我猜这就是 :#
的工作人物。我找不到关于 :#
的任何文档字符工作。谁能解释一下冒号/散列或给我指出正确的方向?
第二部分:
{VALUE:;;Fizz}
何时 VALUE = 0
那么什么也没有打印。我认为这是由第一个 ;
决定的字符[结束语句]。第二个;
字符确定 'if VALUE <> 0
然后打印我后面的内容。'
再次,有人有关于在字符串插值中使用分号的文档吗,因为我找不到任何有用的东西。
最佳答案
这一切都包含在 String Interpolation documentation 中,特别是关于 Structure of an Interpolated String 的部分,其中包括:
{<interpolatedExpression>[,<alignment>][:<formatString>]}
以及这三个部分中每一个部分的更详细描述。
该结构的格式字符串部分在单独的页面上定义,您可以在其中使用 standard和 custom数字类型的格式以及 standard和 custom日期和时间类型的格式。还有 Enum values 的选项,您甚至可以创建自己的 custom format provider .
值得一看自定义格式提供程序文档,因为它还会引导您访问 FormattableString
类型。文档没有很好地介绍这一点,但我的理解是这种类型理论上可能允许您避免在循环中使用时重新解析每次迭代的内插字符串,从而可能提高性能(尽管实际上,此时没有区别)。我有written about this before ,我的结论是微软需要以更好的方式将其构建到框架中。
关于c# - 字符串插值 C# : Documentation of colon and semicolon functionality,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53872982/
我是一名优秀的程序员,十分优秀!