小编Gab*_*ger的帖子

"消耗API"是什么意思?

以下是我目前正在做的任务的摘录:

构建一个虚拟应用程序:

  • 包含可在单个资源上运行的REST API.
  • 包含使用该API的Backbone客户端,可以列出,显示,创建,更新和删除该资源.

我的理解是,"消费"一词意味着API暴露的资源的全部覆盖.但是,该任务说"消耗该API 并且可以[CRUD]该资源".

这句话是多余的还是我对错误一词的理解?

(额外的问题:为什么在Google上搜索这个问题会为"使用API​​"返回无数特定于语言的教程,但没有一个解释该术语实际意味着什么?).

api rest backbone.js

25
推荐指数
3
解决办法
3万
查看次数

如何在Javascript中实现词法分析

嘿伙计们,谢谢你的阅读

我目前正在尝试使用Google风格的计算器.您输入一个字符串,它确定是否可以计算并返回结果.

我从基础开始慢慢开始:+ - / *和括号处理.

我愿意随着时间的推移改进计算器,并且在前一段时间学习了一些关于词法分析的知识,我构建了一个令牌列表和相关的正则表达式模式.

这种工作很容易适用于Lex和Yacc等语言,除了我正在开发一个仅限Javascript的应用程序.

我试图将这个想法转录成Javascript,但我无法弄清楚如何以干净漂亮的方式处理所有内容,尤其是嵌套的括号.


分析

让我们定义一个计算器查询:

// NON TERMINAL EXPRESSIONS //
query     -> statement
query     -> ? // means end of query

statement -> statement operator statement
statement -> ( statement )
statement -> prefix statement
statement -> number

number    -> integer
number    -> float

// TERMINAL EXPRESSIONS //
operator  -> [+*/%^-]

prefix    -> -

integer   -> [0-9]+

float     -> [0-9]+[.,][0-9]+
Run Code Online (Sandbox Code Playgroud)

使用Javascript

词法分析包括验证没有任何东西看起来不像终端表达式之一:运算符,前缀,整数和浮点数.哪个可缩短为一个正则表达式:

(我添加了空格以使其更具可读性)

var calcPat = 
/^ (\s*
    ( ([+/*%^-]) | ([0-9]+) …
Run Code Online (Sandbox Code Playgroud)

javascript regex pattern-matching lexical-analysis

15
推荐指数
1
解决办法
4762
查看次数

"mount"指令在Rails路由中意味着什么?

我在Rails路由系统中找不到关键字"mount"的含义.


我已经设置了Mercury以在我的Rails应用程序中使用.它将此行添加到我的routes.rb配置文件中:

Appname::Application.routes.draw do
  mount Mercury::Engine => '/'
Run Code Online (Sandbox Code Playgroud)

什么是mount关键字是什么意思?

ruby ruby-on-rails mercury-editor ruby-on-rails-4

14
推荐指数
2
解决办法
6948
查看次数

有没有办法在Javascript中截断科学记数字?

众所周知,因为它是关于SO的最常见的主题之一,我遇到了舍入错误的问题(实际上并不是错误,我很清楚).我不会解释我的观点,而是举例说明我可能拥有的数字以及我希望能够获得的输入:

让我们说吧

var a = 15 * 1e-9;
alert(a)
Run Code Online (Sandbox Code Playgroud)

输出

1.5000000000000002e-8
Run Code Online (Sandbox Code Playgroud)

我希望能够获得1.5e-8,但我不能只乘以10e8,舍入并除以10e8,因为我不知道它是e-8还是e-45或其他任何东西.

所以基本上我希望能够获得该1.5000002部分,应用toFixed(3)并放回指数部分.

我可以转换成字符串和解析,但它似乎不正确...

任何的想法 ?


(如果你觉得这是重复的一个,我提前道歉,但我找不到类似的问题,只有相关问题)

盖尔

javascript floating-point rounding-error scientific-notation rounding

5
推荐指数
1
解决办法
2195
查看次数

Rails 4控制器没有返回格式良好的JSON

我正在使用Rails 4构建一个Web应用程序,我偶然发现了Rails控制器和JQuery之间的一些奇怪的行为,我不确定是不是因为我做错了什么,或者是否真的误解了Rails通过JQuery返回JSON.请参阅以下咖啡脚本:

咖啡脚本:

$.get('/get_experiment', (data) -> 
  console.log 'Success:'
  console.log JSON.parse data
).error (data) ->
  console.log 'Failure:'
  console.log JSON.parse data.responseText
Run Code Online (Sandbox Code Playgroud)

我们只需通过GET调用控制器的方法,处理成功和失败并显示返回的数据.

控制器:

def get_experiment
  respond_to do |format|
    format.js { render json: {} }
  end
end
Run Code Online (Sandbox Code Playgroud)

该控制器简单地回复一个空哈希.


运行此示例时,控制台将显示带有"Failure"文本的空JSON,这显然表明它认为JSON格式不正确.

我不明白为什么空哈希被认为是格式错误的JSON.如果用render json: {foo: 'bar'}它替换它,它仍然会调用error方法.

ruby jquery json ruby-on-rails coffeescript

2
推荐指数
1
解决办法
1367
查看次数

从散列数组中过滤值并从原始数组中删除它们

我正在努力寻找过滤散列数组的正确方法,删除与过滤条件匹配的条目,同时返回这些已删除的散列。这是一个例子,magic_function!它完成了我想要实现的目标:

my_array = [{ id: 1, val: 'foo' }, { id: 2, val: 'bar' }, { id: 3, val: 'baz' }]

extracted_hashes = my_array.magic_function! { |hash| hash[:id] == 1 }
# [{ id: 1, val: 'foo' }]

my_array
# [{ id: 2, val: 'bar' }, { id: 3, val: 'baz' }]

Run Code Online (Sandbox Code Playgroud)

我尝试这样做的原因是因为该数组是一个庞大的数据库行集合,我需要使用另一个 ID 数组中的值来处理它们。(不幸的是,该部分无法更改,限制来自数据库的行会更有效率)

使用Array.filter允许我获取正确的哈希值,但每次都在数组的整个长度上进行迭代。由于我不需要已经处理过的散列,我假设从原始数组中删除它们会使它变得越来越小,从而减少过滤下一个 ID 所需的迭代量,直到所有 ID 都已处理完毕并且有原始数组中没有任何剩余。

ruby arrays hash select

2
推荐指数
1
解决办法
70
查看次数