ruby - একটি পরিবর্তনশীল সংজ্ঞায়িত করা হয় কিনা চেক করা?




reflection (10)

Ruby একটি পরিবর্তনশীল সংজ্ঞায়িত করা হয় কিনা তা আমি কিভাবে পরীক্ষা করতে পারি? একটি ইস্যু টাইপ পদ্ধতি উপলব্ধ আছে?


"যদি" এর পরিবর্তে "যদি না" চেষ্টা করুন

a = "apple"
# Note that b is not declared
c = nil

unless defined? a
    puts "a is not defined"
end

unless defined? b
    puts "b is not defined"
end

unless defined? c
    puts "c is not defined"
end

"সংজ্ঞায়িত" এবং "নির্ধারিত" মধ্যে পার্থক্য নোট করুন।

$ ruby -e 'def f; if 1>2; x=99; end;p x, defined? x; end;f'
nil
"local-variable"

এটা নির্ধারিত হয় না যদিও এক্স সংজ্ঞায়িত করা হয়!


আপনি চেষ্টা করতে পারেন:

unless defined?(var)
  #ruby code goes here
end
=> true

কারণ এটি একটি বুলিয়ান ফিরে।


উপরের বিবৃতির জন্য সঠিক সিনট্যাক্স হল:

if (defined?(var)).nil? # will now return true or false
 print "var is not defined\n".color(:red)
else
 print "var is defined\n".color(:green)
end

আপনার পরিবর্তনশীল সঙ্গে প্রতিস্থাপন ( var )। এই সিনট্যাক্স যদি বিবৃতিতে মূল্যায়নের জন্য একটি সত্য / মিথ্যা মান প্রদান করবে।


এখানে কিছু কোড, রকেট বিজ্ঞান কিছুই কিন্তু এটি যথেষ্ট ভাল কাজ করে

require 'rubygems'
require 'rainbow'
if defined?(var).nil?  # .nil? is optional but might make for clearer intent.
 print "var is not defined\n".color(:red)
else
 print "car is defined\n".color(:green)
end

স্পষ্টত, রঙ কোড প্রয়োজন হয় না, এই খেলনা উদাহরণ শুধু একটি চমৎকার চাক্ষুষতা।


এছাড়াও, যদি আপনি কোডটি সংস্পর্শের মাধ্যমে স্ট্রিংয়ের সময় সংজ্ঞায়িত করেন কিনা তা পরীক্ষা করতে পারেন:

puts "Is array1 defined and what type is it? #{defined?(@array1)}"

এটি সংজ্ঞায়িত করা হয় তাহলে সিস্টেম আপনাকে টাইপ বলবে। যদি এটি সংজ্ঞায়িত না হয় তবে এটি কেবল একটি সতর্কতা ফিরিয়ে দেবে যা বলছে যে পরিবর্তনশীলটি শুরু হয় না।

আশাকরি এটা সাহায্য করবে! :)


যদি এটি বিদ্যমান থাকে তবে এটি কোনও কাজ করতে চান না তবে এটি যদি বিদ্যমান না থাকে তবে এটি কার্যকর।

def get_var
  @var ||= SomeClass.new()
end

এটি শুধুমাত্র একবার নতুন উদাহরণ তৈরি করে। তারপরে এটি var var ফিরে রাখে।


defined? YourVariable ব্যবহার defined? YourVariable defined? YourVariable
এটা সহজ নির্বোধ রাখুন ..;)


defined? দুর্দান্ত, কিন্তু যদি আপনি Rails পরিবেশে থাকেন তবে আপনিও try করতে পারেন, বিশেষত ক্ষেত্রে যেখানে আপনি একটি গতিশীল পরিবর্তনশীল নাম পরীক্ষা করতে চান:

foo = 1
my_foo = "foo"
my_bar = "bar"
try(:foo)        # => 1
try(:bar)        # => nil
try(my_foo)      # => 1
try(my_bar)      # => nil

defined? ব্যবহার defined? শব্দ ( documentation )। এটি আইটেমের সাথে একটি স্ট্রিং প্রদান করবে, অথবা যদি এটি বিদ্যমান না থাকে তবে nil

>> a = 1
 => 1
>> defined? a
 => "local-variable"
>> defined? b
 => nil
>> defined? nil
 => "nil"
>> defined? String
 => "constant"
>> defined? 1
 => "expression"

স্ক্যালি মন্তব্য করেছেন: "এটি যে মূল্যবান সেটটি নিল সেট করা হয় তা প্রাথমিকভাবে উল্লেখ করা মূল্যবান।"

>> n = nil  
>> defined? n
 => "local-variable"






reflection