我有这个cobol程序,意在计算一个阶乘:
IDENTIFICATION DIVISION.
PROGRAM-ID. Factorial-hopefully.
AUTHOR. Darth Egregious.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Keeping-Track-Variables.
05 Operand PIC S99 VALUE 0.
05 Product PIC S99 VALUE 1.
PROCEDURE DIVISION.
PERFORM-FACTORIAL.
DISPLAY SPACES
PERFORM VARYING Operand FROM 6 BY -1 UNTIL Operand = 0
DISPLAY "Before Product " Product " Operand " Operand
MULTIPLY Product By Operand GIVING Product
DISPLAY "After Product " Product " Operand " Operand
END-PERFORM
DISPLAY Product.
STOP RUN.
Run Code Online (Sandbox Code Playgroud)
我像这样运行它:
cobc -free -x -o a.out fact.cbl && ./a.out …Run Code Online (Sandbox Code Playgroud) 假设我定义了一个这样的变量:
var o = new { RBI = 108, Name = "Roberto Alamar" };
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
Console.WriteLine("{0}", o);
Run Code Online (Sandbox Code Playgroud)
但如果我尝试:
foreach (var i in o) {
Console.WriteLine("{0}", o[i]);
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
foreach statement cannot operate on variables of type 'AnonymousType#1' because 'AnonymousType#1' does not contain a public definition for 'GetEnumerator'
Run Code Online (Sandbox Code Playgroud)
那么它如何在引擎盖下工作?我认为将对象转换为字符串的方法必须循环遍历所有属性才能完成任务.是否有一些特殊方法可以实现这一点,或者我误解了它是如何工作的?
有没有办法通过上下文菜单将三元赋值重构为用if-else块完成的赋值?
所以,例如你会有这样的事情:
$a = ($b > -32)? "up" : "down";
Run Code Online (Sandbox Code Playgroud)
然后,您将应用此转换,PHPStorm 会神奇地将其更改为:
if ($b > -32) {
$a = "up";
} else {
$a = "down";
}
Run Code Online (Sandbox Code Playgroud)
似乎是一个非常常见且易于自动化的操作,因此它必须在这个迷宫般的菜单中的某个地方实现自动化。
如果我创建一个文件loop.exs:
Enum.each(1..40000, fn (n) -> spawn fn -> IO.puts(n) end end)
Run Code Online (Sandbox Code Playgroud)
并运行它,计算输出行数:
elixir loop.exs | wc -l
Run Code Online (Sandbox Code Playgroud)
在随后的运行中,我可能会看到预期的40000行,但可能会看到更少的行。在我的测试中,我已经看到了39752,39934,39673等这表明,我认为某些进程没有得到调用IO.puts,那么什么是发生在他们身上,为什么没有我警告他们已经失踪了,和我是什么做错了导致这种情况发生?
回到高中时,我和朋友们想出了这个很酷的东西,我们称之为"733t speek",你可以随机化单词的情况.因此,例如,"随机化"将变成类似"rANDomIZe"的东西.
是否有一个PHP功能可以做到这一点,沿着strtolower?我检查了文档,没有任何strtorandom功能.