Questions tagged «syntax»

语法是指实际的语言元素和符号本身。当问题特别且几乎完全与语法相关时,应将问题标记为语法。该标签应与特定的语言标签一起使用


8
花括号和括号在Scala中的形式差异是什么,何时使用?
将参数传递给括号()和花括号之间的形式区别是什么{}? 我从Scala编程中获得的感觉一书中是,Scala非常灵活,我应该使用我最喜欢的一种,但是我发现有些情况下可以编译,而有些情况下则不需要。 例如(仅作为示例;我不胜感激任何讨论一般情况的回复,而不仅限于此特定示例): val tupleList = List[(String, String)]() val filtered = tupleList.takeWhile( case (s1, s2) => s1 == s2 ) =>错误:简单表达式的非法启动 val filtered = tupleList.takeWhile{ case (s1, s2) => s1 == s2 } =>很好。



3
在每个“ when”块中具有多个值的case语句
我能描述我所寻找的最好方法是向您展示到目前为止我尝试过的失败代码: case car when ['honda', 'acura'].include?(car) # code when 'toyota' || 'lexus' # code end 我有大约4或5种不同的when情况,应该由的大约50种不同的可能值触发car。有没有办法用case积木做到这一点,还是应该尝试大量if积木?

8
Haskell / GHC中的“ forall”关键字有什么作用?
我开始了解如何forall在这样的所谓“现有类型”中使用关键字: data ShowBox = forall s. Show s => SB s 但是,这只是如何forall使用的一个子集,我根本无法在这样的事情上全神贯注于它的使用: runST :: forall a. (forall s. ST s a) -> a 或解释为什么这些不同: foo :: (forall a. a -> a) -> (Char, Bool) bar :: forall a. ((a -> a) -> (Char, Bool)) 或整个RankNTypes东西... 我倾向于使用清晰,无术语的英语,而不是学术环境中通常使用的那种语言。我尝试阅读的大多数解释(通过搜索引擎可以找到的解释)都存在以下问题: 他们不完整。他们解释如何使用这个关键字(如“生存型”)的一个组成部分,这使得直到我读码我感到高兴的是,使用它在一个完全不同的方式(比如runST,foo和bar以上)。 假设我在本周流行的离散数学,范畴论或抽象代数的任何分支中都读到了最新的东西,他们的想法密密麻麻。(如果我从来不读的话“咨询文件无论执行的细节”再次,这将是太快了。) 它们的编写方式经常将甚至是简单的概念变成曲折而破碎的语法和语义。 所以... …
312 haskell  syntax  types  ghc  forall 

7
了解Scala中的隐式
我正在通过Scala Playframework教程学习,遇到了这个让我感到困惑的代码片段: def newTask = Action { implicit request => taskForm.bindFromRequest.fold( errors => BadRequest(views.html.index(Task.all(), errors)), label => { Task.create(label) Redirect(routes.Application.tasks()) } ) } 因此,我决定进行调查,并发现了这篇文章。 我还是不明白。 这有什么区别: implicit def double2Int(d : Double) : Int = d.toInt 和 def double2IntNonImplicit(d : Double) : Int = d.toInt 除了显而易见的事实,它们具有不同的方法名称。 我implicit什么时候应该使用,为什么?


27
访问像属性一样的字典键?
我发现访问dict键obj.foo而不是更为方便obj['foo'],因此我编写了以下代码段: class AttributeDict(dict): def __getattr__(self, attr): return self[attr] def __setattr__(self, attr, value): self[attr] = value 但是,我认为一定有某些原因导致Python无法立即提供此功能。以这种方式访问​​字典键的注意事项和陷阱是什么?



7
块声明语法列表
众所周知,Objective C(甚至我认为确实是C)中的块语法是不一致的。将块作为参数传递看起来与将块声明为ivars不同,后者看起来与typedefing块不同。 是否有可供我快速参考的块声明语法的完整列表?

13
使用变量作为名称向JavaScript对象添加属性?
我正在使用jQuery从DOM中提取项目,并希望使用idDOM元素的对象设置属性。 例 const obj = {} jQuery(itemsFromDom).each(function() { const element = jQuery(this) const name = element.attr('id') const value = element.attr('value') // Here is the problem obj.name = value }) 如果itemsFromDom包含一个元素id为“ myId” 的元素,我想obj拥有一个名为“ myId”的属性。以上给了我name。 如何使用JavaScript使用变量来命名对象的属性?


1
“ int main(){((([](){})());}”如何有效C ++?
最近,我遇到了以下深奥的代码。 int main(){(([](){})());} 重新格式化,如下所示以使其更具可读性: int main(){ (([](){})()); // Um... what?!?! } 但是我无法理解(([](){})())有效代码的有效性。 它看起来不像函数指针语法。 这不可能是操作员重载的把戏。代码按原样编译。 Google在这种全符号搜索中并没有太大帮助。但是它可以在Visual Studio 2010中编译,但不输出任何内容。没有错误,也没有警告。因此,它看起来像有效的代码。 在Javascript和C函数指针之外,我从未见过任何如此奇怪的有效代码。 有人可以解释这是如何有效的C ++吗?
271 c++  c++11  lambda  syntax 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.