天道酬勤,学无止境

syntax

How JavaScript interpreter interpret code?

问题 我试图了解浏览器如何解释 javaScript。 我有以下代码 var fName = "John"; var lName = "Snow"; function myName (fName, lName) { fName = "Sam"; lName = "Doe"; return fName + ' ' + lName; } fName; lName; myName(); 问题 1)当代码被解释时,引擎是否首先从上到下为变量分配内存,然后分配值,或者同时两个操作逐行完成? 2)在函数myName中,当fName和lName被声明时,它们是作为局部范围变量创建的,如果是,为什么不允许在()中使用 var 关键字。 3)如果有人能解释这段代码是如何从上到下解释的,我将不胜感激。 回答1 1)当代码被解释时,引擎是否首先从上到下为变量分配内存,然后分配值然后或同时两个操作逐行完成? 解析代码时,会创建已定义的全局标识符( fName 、 lName和myName )。 该函数已创建并分配给其标识符,但尚未为变量分配任何值。 变量的创建和赋值是分开的。 代码中定义的所有变量在代码开始之前都存在。 您可以为在代码中进一步定义的变量分配一个值(但这很容易让人混淆)。 例子: fName = "John"; lName = "Snow"; var fName, lName; 2) 在函数

2022-05-11 14:40:22    分类:技术分享    javascript   syntax   interpreter

Why PHP doesn't allow anonymous functions inside CONST?

问题 为什么 PHP 中不允许使用此代码? const VALIDATOR = array( 'field' => array( 'type' => 'string', 'custom' => function() { return true; })); 甚至这个更简单的版本? const MY_FUN = function($param) { echo $param; }; 引发了unexpected T_FUNCTION错误。 回答1 因为它必须是一个常数值,因为你定义了一个常数! 因此,您不能将“动态”值分配给常量,否则它将不是常量。 您还可以在手册中阅读/查看此内容: 在 PHP 5.6 之前,只有标量数据(布尔值、整数、浮点数和字符串)可以包含在常量中。 从 PHP 5.6 开始,可以将常量定义为标量表达式,也可以定义数组常量。 可以将常量定义为资源,但应避免使用,因为它可能导致意外结果。 回答2 其他答案只复制手册。 我将尝试解释函数常量思想的真正问题。 PHP 不能引入函数常量,即使函数的行为可以在编译时确定。 这是因为 PHP 允许函数和 const 有相同的名称,这意味着如果 PHP 允许函数常量,这样的代码 function test() {} const test = function () {}; 对于test()调用将是模棱两可的。

2022-05-11 01:35:04    分类:技术分享    php   oop   syntax   php-5.3

Print a key in a PHP multidimensional array

问题 我有一个多维数组,我想按如下方式打印内容: Sam class1: 76 class2: 62 class3: 56 class4: 60 Matt class1: 76 class2: 62 class3: 56 class4: 60 Dave class1: 76 class2: 62 class3: 56 class4: 60 Steve class1: 76 class2: 62 class3: 56 class4: 60 我的问题是我不知道如何引用第一个子数组的键(名称)。 key($index)只是将输出中的所有名称替换为“class1”。 到目前为止,这是我的代码: $scoreList = array( "Sam" => array( "class1" => 76, "class2" => 62, "class3" => 56, "class4" => 60, ), "Matt" => array( "class1" => 76, "class2" => 62, "class3" => 56, "class4" => 60, ), "Dave" => array( "class1" => 76, "class2" => 62, "class3" => 56, "class4" => 60, ), "Steve" => array( "class1" => 76

2022-05-10 22:40:32    分类:技术分享    php   arrays   multidimensional-array   syntax   echo

Command grouping (&&, ||, ...)

问题 我们目前在 /home/student/ 目录中。 我们执行以下命令: pwd; (ls) || { cd .. && ls student/; } && cd student || cd / && cd ; 执行的命令有:pwd、ls、cd student、cd /、cd 这是我的想法: pwd 被执行,因为它是第一个命令 (ls) 在子shell中执行,因为命令是分开的和 ”;” || 右边的代码没有执行,因为 || 左边被处决 到目前为止一切都清楚了,我猜。 但我不知道为什么要执行其他命令? 如果有人可以为我分解它,我将不胜感激。 回答1 &&和||的运算符优先级是严格从左到右的。 因此: pwd; (ls) || { cd .. && ls student/; } && cd student || cd / && cd ; ……相当于…… pwd; { { { (ls) || { cd .. && ls student/; }; } && cd student; } || cd /; } && cd ; } ...以图形方式分解: pwd; { # 1 { # 2 { (ls) || # 3 { cd .. && # 4 ls student/; # 5 }; # 6 } && cd student; # 7 } || cd /; # 8 } && cd ; # 9

2022-05-10 16:28:08    分类:技术分享    bash   syntax   operator-precedence

Lucene select all query

问题 我使用 3.6.2 lucene,我尝试编写查询来选择所有文档。 这是我的一些代码: searchString = "content:*"; query = parser.parse(QueryParser.escape(searchString)); indexSearcher.search(query, null, collector); 但是这个请求只返回了大约 25% 的文档,我不知道为什么以及如何进行这样的查询。 更新 *:*也没有选择所有文档,但是用new MatchAllDocsQuery()替换查询有帮助,谢谢。 回答1

2022-05-10 02:04:09    分类:技术分享    syntax   lucene

What does the symbol ::: mean in R

问题 ## Impulse response analysis of SVAR A−type model 1 args (vars ::: irf.svarest) 2 irf.svara <− irf (svar.A, impulse = ”y1 ” , 3 response = ”y2 ” , boot = FALSE) 4 args (vars ::: plot.varirf) 5 plot (irf.svara) 回答1 从帮助文件中(您可以通过help(":::")看到这一点): The expression 'pkg::name' returns the value of the exported variable 'name' in package 'pkg' if the package has a name space. The expression 'pkg:::name' returns the value of the internal variable 'name' in package 'pkg' if the package has a name space. 换句话说:::用于直接访问内部包的成员(即不是从 NAMESPACE 导出的)。 请参阅此相关问题:R:从命名空间调用函数。

2022-05-09 12:13:11    分类:技术分享    r   syntax

What is this called "var count:Int { return items.count }" in Swift?

问题 我在 Swift 的苹果文档中看到了这段代码: var count:Int { return items.count } 我认为这可能是一个关闭。 我相信它不是的原因是因为它没有等号。 所以它没有将该变量分配给任何东西。 如果它不是闭包,那它是什么? 回答1 这是一个Read-Only Computed Property 。 从文档: 具有 getter 但没有 setter 的计算属性称为只读计算属性。 只读计算属性总是返回一个值,并且可以通过点语法访问,但不能设置为不同的值。

2022-05-08 06:18:04    分类:技术分享    syntax   swift

Why is there a difference between css property flex: 0 1 1 and flex: 0px 1 1

问题 如果我写一些 CSS 属性,如margin 、 padding等,如下所示(也是速记) margin : 0 1px 0 1px; and margin : 0px 1px 0px 1px 浏览器将两者解释为 0 没有区别 'property: 0' or 'property: 0px' /* are same thing */ 为什么它不适用于简写的属性flex ? Name: flex Value: none | [ <‘flex-grow’> <‘flex-shrink’> || <‘flex-basis’> ] 演示 1:使用 flex: 0px 1 1(效果很好) 演示 2:使用 flex: 0 1 1(不起作用) 我还提到了 http://dev.w3.org/csswg/css-flexbox/#flex-property ,但没有找到任何答案可以回答我的疑问/问题。 如果我遗漏了一些观点,请帮助我理解。 回答1 flex速记中唯一接受长度作为值的组件是flex-basis 。 在声明flex: 0px 1 1中,您明确指定了一个长度值: 0px 。 这将始终分配给flex-basis 。 这个声明等价于: flex-basis: 0px; flex-grow: 1; flex-shrink: 1; 另一方面,声明flex: 0 1 1是模棱两可的

2022-05-08 05:03:16    分类:技术分享    css   google-chrome   layout   syntax   flexbox

What does a type name in brackets mean?

问题 我正在阅读一个程序并看到以下语法: Pet pet1 = (Pet) objIn.readObject(); Pet是一个抽象类, objIn.readObjet()表示从文件中读取对象,但是语法(Pet)是什么意思呢? 它是否将从文件中读取的每个对象设置为新的Pet对象? 但是Pet是一个抽象类,怎么能在里面设置一个对象呢? 回答1 objIn.readObject(); 返回Object类型的引用。 您不能将Object类型的引用分配给声明为Pet类型的引用。 所以你使用这个语法来转换它。 铸造正在改变事物的类型。 在这种情况下,指向现有Object的指针。 例子 Object obj = objIn.readObject(); if(obj instanceof Pet) { // Make sure it is of type Pet Pet pet1 = (Pet)obj; } (Pet)告诉编译器现在将此实例称为Pet类型。 编辑 我自己说得再好不过了,所以 Andrzej 的评论可以在这里: 转换只告诉类型检查器你(程序员)有更多关于对象真实类型的信息,而不是从静态类型中推断出来的。 例如,在这个例子中,readObject 只保证返回一个 Object - 但我们可以从上下文中看出返回的值实际上是 Pet 的一个实例。 回答2 但是Pet是一个抽象类

2022-05-07 20:36:16    分类:技术分享    java   syntax   casting

Can I declare inner class in different file than outer class?

问题 我正在寻找一种方法来声明内部类,它可以访问外部范围(包装类)。 这两个类都非常庞大,所以我想在不同的文件中声明它们。 例如,我想做类似的事情: 斯卡拉: class A(_secret:Int){ val secret = _secret var clazz:Class = null } B.scala: A.clazz = class B{ def getSecret(){ A.secret } } 整个目的是避免将this作为构造函数参数向下传递,即var clazz = new B(this) 。 回答1 本身可能不是答案,但通常反之亦然: 斯卡拉: class A{ type clazz = B } B.scala: class B{ } 编辑: trait Foo { self: Bar => def fooSecret = "foo secret" def foo() { println("I'm foo, but also know bar's secrets: " + self.barSecret) } } trait Bar { self: Foo => def barSecret = "bar secret" def bar() { println("I'm bar, but also know foo's secrets: " + self

2022-05-07 19:18:08    分类:技术分享    scala   syntax