QLexpress 스 크 립 트 언어 기술 설명 (8) --- - 논리 적 처리
2953 단어 qlexpress스 크 립 트 언어
QLExpress 소스 코드 다운로드 주소:http://code.taobao.org/p/QLExpress/src/ )
어제 공장 외부 인사 의 메 일 을 받 았 는데 요 구 는 다음 과 같 습 니 다.
, !
BLOG QLExpress , :
QLExpress , true/false
:
. ==' ' && ( . > 2 || . =='VIP')
true/false , , ( 、 );、、
QL , QLExpress , 。
사실 논리 적 인 통 제 는 약 2 년 전에 우 리 는 이미 실현 되 었 고 타 오 바 오 내부 업무 시스템 도 많이 사용 되 었 다.물류 보, 마 케 팅 시스템, 감독 시스템 등.
두 가지 요 구 를 포함 합 니 다.
1. 모든 오류 정 보 를 출력 해 야 하기 때문에 논리 적 단락 을 피한다.
2. 오류 메 시 지 를 우호 적 으로 표시 합 니 다.
해답: 1
첫 번 째 문 제 는 잘 해결 되 었 습 니 다. runner 속성 을 설정 하면 됩 니 다. 이 설정 은 많은 장면 에서 유용 합 니 다. (즉, 모든 표현 식 을 실행 하고 마지막 결 과 를 얻 고 싶 습 니 다)
runner.setShortCircuit(true);
해답: 2
ExpressRunner.addOperatorWithAlias(String keyWordName, String realKeyWordName,String errorInfo)
'조작 부호 이름 바 꾸 기' 라 는 아름 다운 이름 을 가 진 이 함 수 는 사실 잘못된 정 보 를 논리 적 으로 판단 하기 위 한 디자인 이다.
예 를 들 어 저 는 (100 이 99 보다 작 을 때) 잘못 보고 하면 '<' 를 다시 정의 할 수 있 습 니 다.
runner. addOperator WithAlias ("작 음", "<" $1 이 $2 보다 작 으 면 기 대 를 충족 시 키 지 못 합 니 다 ");
이렇게 하면 오류 메시지 가 표 시 됩 니 다. 100 이 99 보다 작 으 면 기대 에 만족 하지 않 습 니 다.
그럼 어떤 형님 들 은 고민 하 실 거 예요. 제 가 표현 식 내용 이 라면... (100 < 99) 가 아니 라 (100 이 99 보다 작 음) 어 떡 하지?
ExpressRunner 내부 의 조작 부호 체계 설계 에 제한 을 받 기 때문에 우 리 는 타협 을 해서 먼저 문자 교체 작업 을 할 수 밖 에 없다.
text = "100<99 and 100<=99 and 100>1";
text = text.replaceAll("<",“ ”).replaceAll("<=",“ ”).replaceAll(">"," ");
runner.setShortCircuit(true);
runner.addOperatorWithAlias(" ","<","$1 $2");
runner.addOperatorWithAlias(" ","<=","$1 $2");
runner.addOperatorWithAlias(" ",">","$1 $2");
List<String> errorInfo = new ArrayList<String>();
IExpressContext<String,Object> expressContext = new DefaultContext<String,Object>();
runner.execute(text , expressContext, errorInfo, true, false);
if(result){
System.out.println("result is success!");
}else{
System.out.println("result is fail!");
for(String error : errorInfo){
error=error.replaceAll(“ ”,"<").replaceAll(“ ”,"<=").replaceAll(" ",">");
System.out.println(error);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JavaScript 기초 문법 demo 1이 편 은 자 바스 크 립 트 의 기초 지식 과 변수, 데이터 형식 을 다 루 고 있 습 니 다. 브 라 우 저 팝 업 입력 상자, 사용자 가 입력 할 수 있 습 니 다. log F12 에 있 는 Console 에서...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.