首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Ruby 定義私有方法的兩種寫法:private 關鍵字完整指南

     編輯:更多程式設計知識

Ruby 中將方法設為 private 有兩種主流寫法,功能等價但風格迥異。掌握兩者優缺點,能讓程式碼更符合團隊慣例與可讀性需求。

寫法一:事後宣告(後置式)

先定義方法,再用 private :method_name 宣告。優點是方法定義與可見性分離,適合將所有私有方法集中在類別底部管理。

class C
  def public_method
    private_method   # 內部呼叫私有方法
  end

  def private_method
    puts "我是私有方法"
  end

  private :private_method   # 事後標記為私有
end

寫法二:區塊宣告(前置式)

在 private 關鍵字之後定義的方法,自動成為私有方法。優點是視覺上明確區分公有/私有區塊,閱讀時一眼看出邊界。

class C
  def public_method
    private_method
  end

  private   # 此行以下皆為私有

  def private_method
    puts "我是私有方法"
  end
end

驗證私有性

C.new.public_method   # => "我是私有方法" (正常,內部呼叫)
# C.new.private_method  # => NoMethodError: private method `private_method' called

進階提示

  • private 也可接受多個 Symbol:private :foo, :bar
  • 若需在子類別仍可呼叫,請改用 protected
  • Ruby 2.1+ 回傳方法名稱,可鏈式寫法:private def foo; end(寫法二的語法糖)

選擇哪種風格取決於團隊偏好:大型類別推薦寫法二(區塊式),小型類別或偏好集中管理者可用寫法一。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved