Membership 연산자는 값이 시퀀스의 멤버인지 확인합니다. 연산 결과는 항상 불리언(boolean) 값을 반환합니다.
Membership 연산자
연산자 | 설명 | 예 |
---|---|---|
in | 배열에서 a를 발견하는지 | a in Array |
contains | 배열에서 a를 포함하는지 | Array contains a |
예제
첫 번째는 'naver'가 배열에 있으면 true를, 없으면 false를 반환하는 코드입니다.
두 번째는 'naver'가 배열에 있으면 false를, 없으면 true를 반환하는 코드입니다.
<b:eval expr='"naver" in ["naver", "tistory", "blogger"]' />
<!--
결과:
true
-->
<b:eval expr='"naver" not in ["naver", "tistory", "blogger"]' />
<!--
결과:
false
-->
자료를 검색하는 방향이 다를 뿐 in 연산자와 contains 연산자의 기능은 동일합니다.
<b:eval expr='"naver" in ["naver", "tistory", "blogger"]' />
<!--
결과:
true
-->
<b:eval expr='["naver", "tistory", "blogger"] contains "naver"' />
<!--
결과:
true
-->
실전 예제 1
다음은 게시물 본문(post.body)에 '블로그'를 포함하고 있으면 '안녕'을 출력하는 코드입니다.
<b:if cond='data:post.body contains "블로그"'>
<h1>안녕</h1>
</b:if>
실전 예제 2
아래 코드는 검색 라벨이 apple, banana이면 '과일'을 반환하고, 아니면 '안녕'을 반환하는 코드입니다.
<b:eval expr='data:view.search.label in ["apple", "banana"] ? "과일" : "안녕"'/>
실전 예제 3
현재 페이지의 게시물 수가 7개 또는 20개 또는 50개의 게시물이 있고, 게시물 목록이면 true를 반환합니다.
<b:eval expr='data:posts.size in [7, 20, 50] and data:view.isMultipleItems'/>