相关疑难解决方法(0)

"!"的目的是什么?和"?" 在方法名称的末尾?

有时我看到Ruby中的方法有"?" 和"!" 在他们的最后,例如:

name = "sample_string"
name.reverse
name.reverse!
name.is_binary_data?
Run Code Online (Sandbox Code Playgroud)

我想知道他们的目的是什么?它们只是语法糖衣吗?

ruby syntax

96
推荐指数
4
解决办法
4万
查看次数

为什么变量名不能以`?`结尾而方法名称可以?

方法名称可以以问号结尾 ?

def has_completed?
  return count > 10
end
Run Code Online (Sandbox Code Playgroud)

但变量名不能.

这是什么原因?变量名也以同样的方式结束不方便吗?鉴于我们通常无法foobar通过查看名称来判断方法还是变量foobar,为什么例外?情况呢?

我应该如何处理这个?也许总是使用hasis在代码中?

if process_has_completed
  ...
end

if user_is_using_console
  ...
end
Run Code Online (Sandbox Code Playgroud)

ruby

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

一元问号(?)运算符有什么作用?

我在HAML代码中看到了这个运算符.我想知道它是为了什么.

我看到以下作品:

> ?{
=> "{" 
> ?\s
=> " " 
> ?a
=> "a" 
Run Code Online (Sandbox Code Playgroud)

这不起作用:

> ?ab
SyntaxError: (irb):4: syntax error, unexpected '?'
Run Code Online (Sandbox Code Playgroud)

所以我认为它需要一个字符作为参数并返回一个带有该字符的字符串.

问题:

  1. 这个运营商做什么?
  2. 什么时候应该使用它?
  3. 如果它真的只创建一个单字符串,为什么它包含在语言中呢?它不会破坏语言的正交性吗?有什么好处?

ruby operators

27
推荐指数
2
解决办法
4627
查看次数

`?n`与''n'不同?

Chris Pine的" 如何编程"提到以下内容:

?T
Run Code Online (Sandbox Code Playgroud)

应该回来84.当我运行它时,它返回"T".我怀疑存在版本差异.我猜这?是一个ArrayString方法,但我找不到文档.怎么?T办?

ruby string ruby-1.8

4
推荐指数
1
解决办法
110
查看次数

什么 ?意思是红宝石

下面的行检查和执行什么?

prefix = root_dir.nil? ? nil : File.join(root_dir, '/')
Run Code Online (Sandbox Code Playgroud)

这是包含代码行的块.

def some_name(root_dir = nil, environment = 'stage', branch)
        prefix = root_dir.nil? ? nil : File.join(root_dir, '/')
.
.
. 
Run Code Online (Sandbox Code Playgroud)

我知道'?' 在红宝石中是检查是/否履行的东西.但我对上面的代码块中的用法/语法不是很清楚.

ruby ruby-on-rails

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

红宝石的特殊方法(问号)

你如何定义验证方法?例子:包括?甚至?奇?

>> 2.odd?
=> false
>> 6.even?
=> true
>> 
Run Code Online (Sandbox Code Playgroud)

ruby

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

".includes?"中的问号是什么?红宝石意味着什么?

我跑过这段代码,想知道是什么?意味着在这种情况下?它是if语句条件的一部分

if user_input.include? "s"
Run Code Online (Sandbox Code Playgroud)

什么是"?" 意思?

对不起,我是红宝石的新手

ruby syntax

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

标签 统计

ruby ×7

syntax ×2

operators ×1

ruby-1.8 ×1

ruby-on-rails ×1

string ×1