Rails Insights

Deall y 'self' yn Ruby a'i Defnyddiau

Mae Ruby yn iaith raglennu sy'n adnabyddus am ei symlrwydd a'i harddwch. Un o'r cysyniadau pwysicaf yn Ruby yw'r 'self'. Mae'r 'self' yn cynrychioli'r gwrthrych presennol, sy'n golygu ei fod yn chwarae rôl hanfodol wrth ddelio â methodau a phriodweddau. Yn yr erthygl hon, byddwn yn archwilio'r cysyniad o 'self', ei ddefnyddiau, a rhai enghreifftiau i'w gwneud yn gliriach.

Beth yw 'self'?

Yn Ruby, mae 'self' yn cynrychioli'r gwrthrych presennol yn y cyd-destun lle mae'n cael ei ddefnyddio. Mae'n gallu bod yn ddefnyddiol mewn sawl sefyllfa, gan gynnwys:

  • Defnyddio 'self' i gyfeirio at briodweddau a methodau'r gwrthrych presennol.
  • Defnyddio 'self' mewn methodau statig.
  • Defnyddio 'self' i greu methodau a phriodweddau newydd.

Defnyddio 'self' i gyfeirio at briodweddau a methodau

Pan fyddwch yn gweithio gyda gwrthrychau, mae 'self' yn caniatáu i chi gyfeirio at briodweddau a methodau'r gwrthrych presennol. Dyma enghraifft syml:

class Person
  attr_accessor :name

  def initialize(name)
    @name = name
  end

  def greet
    "Helo, fy enw i yw #{self.name}!"
  end
end

person = Person.new("Tom")
puts person.greet

Yn yr enghraifft hon, rydym yn creu dosbarth o'r enw 'Person' gyda phriodwedd o'r enw 'name'. Mae'r dull 'greet' yn defnyddio 'self' i gyfeirio at y priodwedd 'name' o'r gwrthrych presennol.

Defnyddio 'self' mewn methodau statig

Mae 'self' hefyd yn ddefnyddiol mewn methodau statig. Mae methodau statig yn gysylltiedig â'r dosbarth ei hun yn hytrach na gwrthrych penodol. Dyma enghraifft:

class MathOperations
  def self.add(a, b)
    a + b
  end
end

puts MathOperations.add(5, 3)

Yn yr enghraifft hon, rydym yn creu dosbarth o'r enw 'MathOperations' gyda method statig o'r enw 'add'. Mae 'self' yn caniatáu i ni ddynodi bod y dull hwn yn statig, sy'n golygu y gallwn ei alw yn uniongyrchol ar y dosbarth heb greu gwrthrych.

Defnyddio 'self' i greu methodau a phriodweddau newydd

Gall 'self' hefyd gael ei ddefnyddio i greu methodau a phriodweddau newydd yn y dosbarth. Dyma enghraifft:

class Car
  attr_accessor :model

  def initialize(model)
    @model = model
  end

  def self.create(model)
    new(model)
  end
end

car = Car.create("Ford")
puts car.model

Yn yr enghraifft hon, rydym yn creu method statig o'r enw 'create' sy'n creu gwrthrych newydd o'r dosbarth 'Car'. Mae 'self' yn ein galluogi i ddynodi bod y dull hwn yn perthyn i'r dosbarth 'Car'.

Defnyddio 'self' yn y cyd-destun o ddirprwyaeth

Mae 'self' hefyd yn chwarae rôl bwysig wrth ddirprwyo methodau. Pan fyddwch yn ddirprwyo dull o un gwrthrych i un arall, mae 'self' yn sicrhau bod y cyfeiriad yn gywir. Dyma enghraifft:

class Employee
  attr_accessor :name

  def initialize(name)
    @name = name
  end

  def work
    "Mae #{self.name} yn gweithio."
  end
end

class Manager < Employee
  def delegate
    work
  end
end

manager = Manager.new("Sarah")
puts manager.delegate

Yn yr enghraifft hon, mae 'Manager' yn ddirprwywr o 'Employee'. Pan fyddwn yn galw'r dull 'work' o fewn 'delegate', mae 'self' yn cyfeirio at y gwrthrych 'Manager', gan sicrhau bod y priodwedd 'name' yn gywir.

Defnyddio 'self' yn y cyd-destun o ddirprwyaeth a phriodweddau

Mae 'self' hefyd yn ddefnyddiol wrth ddirprwyo priodweddau. Dyma enghraifft:

class Animal
  attr_accessor :species

  def initialize(species)
    @species = species
  end
end

class Dog < Animal
  def initialize(name)
    super("Ci")
    @name = name
  end

  def info
    "Mae #{self.name} yn anifail o'r rhywogaeth #{self.species}."
  end
end

dog = Dog.new("Rex")
puts dog.info

Yn yr enghraifft hon, mae 'Dog' yn ddirprwywr o 'Animal'. Mae 'self' yn ein galluogi i gyfeirio at y priodwedd 'species' o'r gwrthrych 'Dog'.

Casgliad

Mae 'self' yn cysyniad pwysig yn Ruby sy'n caniatáu i ni gyfeirio at y gwrthrych presennol, gan ei gwneud yn hanfodol ar gyfer gweithio gyda methodau, priodweddau, a ddirprwyaeth. Mae deall sut i ddefnyddio 'self' yn gallu gwella eich sgiliau rhaglenni yn Ruby a gwneud eich cod yn fwy clir a chynhwysfawr.

Gobeithio bod yr erthygl hon wedi rhoi gwell dealltwriaeth i chi o'r cysyniad o 'self' yn Ruby a'i ddefnyddiau. Peidiwch ag oedi i archwilio mwy o'r iaith a'i nodweddion, gan y gall Ruby fod yn offeryn pwerus ar gyfer datblygu meddalwedd.

Published: August 12, 2024

© 2024 RailsInsights. All rights reserved.