Palabra clave undef en Ruby

Ruby proporciona una palabra clave especial que se conoce como palabra clave undef . Esta palabra clave solía evitar que la clase trabajadora actual respondiera a las llamadas a los métodos o variables especificados. O, en otras palabras, una vez que usa la palabra clave bajo con cualquier nombre de método, no puede llamar a ese método. Si intenta llamar a ese tipo de método, recibirá un mensaje de error que dice que la variable local o el método no están definidos. También puede indefinir múltiples métodos usando una sola palabra clave undef. 
Sintaxis: 
 

undef method_name

Discutamos este concepto con la ayuda de los ejemplos dados: 
Ejemplo 1: 
 

Ruby

# Ruby program to illustrate the undef keyword
 
# Here portal is the method name
def portal
   
# Statement to be displayed
puts "Welcome to GeeksforGeeks portal !!"
  
end
   
# Calling portal method
portal
 
# Here language is the method name
def language
     
 puts "Learn Ruby!"
  
 end
  
# Undefine the language method
# Using undef keyword
undef language
  
# Calling language method
language

Producción:  

Welcome to GeeksforGeeks portal !!
main.rb:26:in `<main>': undefined local variable or method `language' for main:Object (NameError)

Explicación: En el ejemplo anterior, tenemos dos métodos, es decir, portal e idioma. Aquí, cuando llamamos al método del portal, se imprime “¡Bienvenido al portal GeeksforGeeks!”, pero cuando llamamos al método del idioma, dará un mensaje de error que indica que el método no está definido como ‘idioma’. Porque usamos la palabra clave undef antes del método de idioma que hace que el método de idioma no esté definido.
Ejemplo 2: 
 

Ruby

# Ruby program to illustrate the undef keyword
 
#!/usr/bin/ruby
 
# Defining class Student
class Student
 
# initialize method
def initialize(id, name, branch)
 
# variables
@st_id = id
@st_name = name
@st_branch = branch
 
# Displaying values
puts "ID is: #@st_id"
puts "Name is: #@st_name"
puts "Branch is: #@st_branch"
puts "\n"
end
 
# Using undef keyword
undef st_id
end
 
# Creating objects and passing parameters
# to new method
obj1 = Student.new("1", "Amu", "ECE")
obj2 = Student.new("2", "Minu", "EEE")

Producción:  

main.rb:24:in `<class:Student>': undefined method `st_id' for class `Student' (NameError)
    from main.rb:7:in `<main>'

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *