什么"?" 做?什么是__FILE__?

Bla*_*man 0 ruby

随机轨道/红宝石问题为一个nooby,非常感谢.

困惑于第二个'?' 意思是在行:

@page ||= params[:page].blank? ? 1 : params[:page].to_i
Run Code Online (Sandbox Code Playgroud)

在init.rb文件中,FILE真正做了什么?

require File.join(File.dirname(__FILE__), "rails", "init")
Run Code Online (Sandbox Code Playgroud)

edg*_*ner 7

首先 ?是方法名称的一部分,这是一种用于返回布尔结果的方法的约定.

第二 ?是内联条件运算符:

a ? b : c
Run Code Online (Sandbox Code Playgroud)

相当于

if a then
  b
else
  c
end
Run Code Online (Sandbox Code Playgroud)

__FILE__是一个返回当前文件的文件名的内核函数.File.dirname(__FILE__)将只返回当前文件的目录名称,File.join相同Array#join与OS特定的目录分隔符(/在Linux/OSX和\Windows上)

  • 不是这样......结果将是`/ init_folder/rails/init`.例如,`File.join("my","very","deep","folder")`将导致`/ my/very/deep/folder`或`\ my\very\deep\folder`,取决于操作系统. (3认同)