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