Ruby-c选项实际任务
我有一小段Ruby代码,解释器突然开始抱怨。当我运行程序时,我得到:Ruby-c选项实际任务,ruby,indentation,Ruby,Indentation,我有一小段Ruby代码,解释器突然开始抱怨。当我运行程序时,我得到: :85: warning: mismatched indentations at 'end' with 'while' at 75 但是我看不到任何不匹配的while/end 如果我用c选项检查它,我得到: ruby-cdb_manager.rb 语法正常 那么-c到底在做什么呢?它实际上是在检查缩进吗? 要我刷新一下吗 53 def dump_mysql 54 period=period 55 @dump
:85: warning: mismatched indentations at 'end' with 'while' at 75
但是我看不到任何不匹配的while/end
如果我用c选项检查它,我得到:
ruby-cdb_manager.rb
语法正常
那么-c
到底在做什么呢?它实际上是在检查缩进吗?
要我刷新一下吗
53 def dump_mysql
54 period=period
55 @dump=File.new("#{@tmp_dir}dump.txt","w")
56 query=@db_standard_hash["database_dump_query"]
57 result=@connection.query(query)
58 final=""
59 while run = result.fetch_hash do
60 arr=run.values
61 arr.each do |value|
62 value = "NULL" if value.nil?
63 final << value
64 final << "\t"
65 end
66 final=final.chop
67 final << "\n"
68 @dump.write(final)
69 final = ""
70 end
71 @dump_users=File.new("#{@tmp_dir}dump_second.txt","w")
72 query=@db_standard_hash["users_query"]
73 result=@connection.query(query)
74 final = ""
75 while local = result.fetch_hash do
76 usr_arr=local.values
77 usr_arr.each do |value|
78 final << value
79 final << "\t"
80 end
81 final=final.chop
82 final << "\n"
83 @dump_users.write(final)
84 final = ""
85 end
86 end
53 def dump_mysql
54句号=句号
55@dump=File.new(“{@tmp\u dir}dump.txt”,“w”)
56 query=@db\u标准\u散列[“数据库\u转储\u查询”]
57 result=@connection.query(查询)
58 final=“”
59 while run=result.fetch\u hash do
60 arr=运行值
61 arr.每个do |值|
62 value=“NULL”如果value.nil?
63 final运行程序时,您似乎使用选项-w
打开警告,但在使用-c
选项检查语法时,您忽略了该选项。我已将您的代码保存在名为foo.rb
的文件中:
$ruby-cfoo.rb
语法正常
$ruby-c-w foo.rb
foo.rb:33:警告:“end”处的缩进与23处的“while”不匹配
语法正常
它只是告诉您,与对应的关键字在第23行(在您的示例中为75行)不一致地缩进,实际上它只缩进了一个空格。Thx,我不知道Ruby解释器的警告是如此准确和严格。