gpt4 book ai didi

javascript - Coffeescript 编译变体(coffeescript.org 与 Coffee-rails)

转载 作者:行者123 更新时间:2023-11-28 08:19:16 25 4
gpt4 key购买 nike

我正在尝试在coffeescript中编写一个简单的github API调用,但遇到了coffeescript.org和coffee-rails gem之间无法解释的不一致问题。我已经检查了制表符/空格的混合次数,次数超出了我的计数,并且感觉一定有一些微妙或愚蠢的东西我错过了。

原始代码

$ ->
gistids = ['5100088']
for gistid in gistids
$.ajax
url: 'https://api.github.com/gists/'+gistid,
type: 'GET',
dataType: 'jsonp'
.success (gistdata) ->
console.log(gistdata.data.files)
.fail (e) ->
console.log(e)

Coffeescript.org 编译

它很高兴地在 Coffeescript.org 上编译为以下内容(并且当通过控制台运行时,其功能完全符合预期)。

$(function() {
var gistid, gistids, _i, _len, _results;
gistids = ['5100088'];
_results = [];
for (_i = 0, _len = gistids.length; _i < _len; _i++) {
gistid = gistids[_i];
_results.push($.ajax({
url: 'https://api.github.com/gists/' + gistid,
type: 'GET',
dataType: 'jsonp'
}).success(function(gistdata) {
return console.log(gistdata.data.files);
}).fail(function(e) {
return console.log(e);
}));
}
return _results;
});

Rails-coffee gem 编译(这是我的输出)

替代编译显然注定会失败,而且似乎与我想要实现的目标相差甚远。看起来 for 循环正在尝试按照您在 eat food for food in ['toast', 'cheese', 'wine'] 中所期望的方式执行内容> 类型语法?

如果您使用另一个在线“尝试 CoffeeScript ”类型的网站,例如http://www.compileonline.com/try_coffeescript_online.php,也会输出此代码

  $(function() {
var gistid, gistids, _i, _len, _ref, _results;
_ref = gistids($.ajax({
url: 'https://api.github.com/gists/' + gistid,
type: 'GET',
dataType: 'jsonp'.success(function(gistdata) {
return console.log(gistdata.data.files).fail(function(e) {
return console.log(e);
});
})
}));
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
gistid = _ref[_i];
_results.push(gistids = ['5100088']);
}
return _results;
});

我错过了什么?正在使用的版本之间是否存在重大变化、编译标志差异、被忽略的小语法错误,或者我完全错误了?

最佳答案

这不再是一个问题,但我还没有接近找到其变化原因的答案。

我能够更改并重新编译代码,更改反射(reflect)在代码中(仍然错误编译)。我决定在另一个 CoffeeScript 文件中手动重新输入代码,效果非常好。然后,我复制/粘贴了重新输入的代码,它在另一个文件中仍然有效。

然后,我将现有的 CoffeeScript 文件中的内容交换到我遇到问题的文件,但它甚至无法编译。我重命名了该文件,认为可能存在一些我没有意识到的命名限制,并且它开始正确编译。然后我把文件名改回来,它仍然可以完美编译。请注意,上面我提到编译正在进行更改更新,只是编译不正确(它不是旧版本)。

这里奇怪的是,我能够撤消所有更改并恢复有问题的代码。将其复制到compileronline 仍然会导致相同的问题,但复制新代码效果很好。我对新旧代码进行了差异比较,结果报告没有差异,尽管上述内容完全可重复。

我只能假设这是一个空白/字符问题,没有在差异中显示,尽管第一次手动重新输入似乎没有解决它,直到文件已更改。我已经向世界大喊了这件事的不公正,我需要继续前进,但如果有人对此有更充分的理由,我会非常感兴趣。

关于javascript - Coffeescript 编译变体(coffeescript.org 与 Coffee-rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23189367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com