use*_*057 2 ruby syntax syntax-error
编辑:
我已经创建了一个包,现在在GNU公共许可证下在GitHub上发布.非常感谢你们对这个问题的帮助!
使用这部分脚本:
line = { TransactionType: "Payment",
Account: #{xagate},
Destination: #{destinationAddress},
Amount: {
currency: "TST",
value: "#{destAmount}",
issuer: "rKYHqy2QWbf5WThp7vdJAxTR3WBHKDh9xv"
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
syntax error, unexpected tLABEL
Destination: #{destinationAddress},
^
Run Code Online (Sandbox Code Playgroud)
导致此语法错误的原因是什么?下面接受的答案解释了如何解决此错误.至于Ripple JSON,我发现波纹服务器软件的err29是由于缺少Fee和Sequence字段而导致的.如果您也遇到此问题,则在此主题中正在调查答案:https: //forum.ripple.com/viewtopic.php?f = 2&t = 15599
unexpected tLABEL根据我的经验,表示表达式或块未正确结束.Ruby正在阅读您的代码
line = { TransactionType: "Payment",
Account: Destination: # STOPS HERE from error
Run Code Online (Sandbox Code Playgroud)
line是你正在制作的哈希.哈希遵循以下格式:{ key => value }和{ key: value }.看起来你正在遵循第二种格式.如上所述,Ruby正在读取您的代码,{ key: {key: } }因为缺少第二个键的值.
在字符串之外,#符号告诉Ruby"从这里到行尾的所有内容都是注释." 您可以使用StackOverflow语法高亮显示器将Ruby注释标记为灰色来轻松查看.
但是在字符串中,#用于字符串插值,这似乎是你想要实现的.字符串插值包括围绕文本的双引号,如下所示:"Hello, #{planet}",#{}放置变量的位置.
这是使用字符串插值编写代码的方法:
Account: "#{xagate}",
Destination: "#{destinationAddress}",
Run Code Online (Sandbox Code Playgroud)
如果您稍后在代码中查看,那么您实际上是这样做的line[Amount][value](这是"#{destAmount}")
由于您的字符串只包含插值对象,我建议以下内容.首先,您可以调用to_s该对象,将其转换为字符串.如果对象是数组,则该字符串将包含逗号和括号.其次,你可以干脆做Account: xagate.这更简单,因为您可以检查变量的值,而不是包含变量的字符串.(少一个步骤!)
最后,正如您在聊天中提到的,您是Ruby的新手.标准惯例是所有以大写字母(如Account)开头的对象引用类,而大写字母中的对象是常量.这不是你的错误的原因,虽然现在开始修复它是一个好习惯...以防止可能源于此的问题.