गार्ड पैटर्न मैचिंग के पूरक के रूप में इस्तेमाल किए जाते हैं। इनसे और भी जटिल जाँच संभव हो जाती है। जहाँ पैटर्न मैचिंग इस्तेमाल की जा सकती है, वहाँ गार्ड भी कुछ स्थितियों में, पर सभी में नहीं, इस्तेमाल किए जा सकते हैं। जैसे फंक्शन क्लॉज़ या केस क्लॉज़ में।
def empty?(list) when is_list(list) and length(list) == 0 do
true
end
गार्ड when कीवर्ड से शुरू होते हैं, और उसके बाद एक बूलियन एक्सप्रेशन आता है।
गार्ड एक्सप्रेशन कुछ खास फंक्शन होते हैं, जो:
true या false वैल्यू ही लौटानी चाहिए।आम गार्ड की सूची Elixir के डॉक्युमेंटेशन में मिलती है। इनमें ये शामिल हैं:
आप defguard की मदद से अपने खुद के गार्ड बना सकते हैं।
Elixir के नेमिंग कन्वेंशन के अनुसार, गार्ड के नाम is_ से शुरू होने चाहिए।
defmodule HTTP do
defguard is_success(code) when code >= 200 and code < 300
def handle_response(code) when is_success(code) do
:ok
end
end