2015-09-04 3 views
5

मैं Ecto प्रलेखन के माध्यम से ब्राउज़ किया गया था, जब मैं प्रक्षेप हिस्सा है, जहां Ecto स्वरित (^) पर हस्ताक्षर का उपयोग करता है, तो जैसे करने के लिए मिला है।सर्क्सफ्लेक्स साइन/पिन/कैप ऑपरेटर (^) एलिक्सीर में क्या करता है?

def with_minimum(age, height_ft) do 
    from u in User, 
    where: u.age > ^age and u.height > ^(height_ft * 3.28) 
end 

मुझे आश्चर्य बने, यह क्या करता है? :-)

उत्तर

3

अमृत में, पिन ऑपरेटर एक चर के वर्तमान मूल्य पर मैच के लिए मिलान पैटर्न में प्रयोग किया जाता है। आप इसके बारे में यहां और अधिक पढ़ सकते हैं: http://elixir-lang.org/getting-started/pattern-matching.html

एक्टो पिन ऑपरेटर को क्वेरी इंटरपोलेशन के रूप में बदलता है जहां आप क्वेरी में एलिक्सिर मान पास करते हैं। आप तर्क दे सकते हैं कि उनके व्यवहार कुछ हद तक समान हैं, क्योंकि डेटाबेस प्रभावी ढंग से क्वेरी को चलाने के लिए क्वेरी को चलाने का प्रयास कर रहा है, लेकिन इसका सबसे आसान तरीका यह है कि वास्तव में क्वेरी इंटरपोलेशन के रूप में है। यहां अधिक जानकारी: http://hexdocs.pm/ecto/Ecto.Query.html

संबंधित मुद्दे