![]() |
|
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
Operadores en comparaciones de variables
Hola, a la hora de crear un contexto y que este puede estar activo en función del valor de determinadas variables estoy usando el operador "AND"
Por ejemplo: variable1 ~ ON AND variable2 ~ ON AND variable3 ~ ON Entiendo que el contexto sólo está activo cuando las tres variables están a ON. Si meto una cuarta variable creo que el tasker se hace un lío. He observado que existe otro operador "AND+" AND (High Precedence)", también lo hay para OR y XOR. ¿Sabéis qué significa este AND+"? |
|
#2
|
http://tasker.dinglisch.net/userguid...ctionedit.html :
" If*(Condition) Parameter (most actions) Allows specification of one or more conditions which must match if this action is to execute. Single conditions consist of a*left-hand side(usually a variable name), an*operator*and a*right-hand-side*for example*%number, Equals, 1*indicates that the action will be executed if the variable %number has the value 1. When more than one condition is specified, they must be combined via*And*(all conditions must be true),*Or*(at least one condition must be true) or*Xor*(exactly one must be true). These 'combiners' are calledboolean operators. Usually, 2 or 3 conditions will be combined with all*Ands or all*Ors, but in order to allow more complicated logic, Tasker also offers*And*and*Or*in high-precedence versions. Of the 4 boolean operators which are available, the selection goes from low to high precedence ones. The higher the precedence of a boolean operator, the further to the right it is shown. This enables the logical groups to be visualised. Examples: True | False & True | False*is the same as*( True | False ) & ( True | False )*so isTrue. True & False | True & False*is the same asTrue & ( False | True ) & False*so is*False. True & False | True |+ False*is the same asTrue & ( False | ( True | False ) )*so isTrue. Note that the order of the conditions can mean that some conditions are never evaluated. For instance, when two conditions are present and the one above an*And*is*false*then the condition below it will never be evaluated. This can be advantageous if the second condition takes relatively more resources e.g. involves matching against a lot of text. Please see the section on*Flow Control*for more information. " |
Los siguientes 2 usuarios han agradecido a mlesir su comentario: | ||
#3
|
||||
|
||||
Cita:
"Por lo general, 2 ó 3 condiciones se combinan con varios ANDs o varios ORs, pero con el fin de permitir la lógica más complicada, Tasker también ofrece AND y OR en versiones de alta precedencia. De los 4 operadores lógicos que están disponibles, la selección va de menos a más en orden de precedencia". Incluso con la traducción me resulta un poco confuso: ¿evalúa primero lo que tiene menos precedencia? eso me parece contrario a la lógica. ¿Cuáles son los ¿CUATRO??? operadores? Yo cuento cinco: AND, OR, XOR, AND+, OR+; supongo que ha olvidado el XOR porque es muy poco utilizado. Creo que los operadores de alta precedencia se aplican a casos como el siguiente, donde se muestran tres situaciones con resultados distintos según se establezcan las prioridades de pecedencia (que he representado mediante paréntesis y negrita): %var1~A AND %var2=1 OR %var3 >0 %var1~A AND (%var2=1 OR %var3 >0) (%var1~A AND %var2=1) OR %var3 >0 Esto que he dicho lo he deducido leyendo la página enlazada por Mlesir y un hilo del foro oficial, aunque tampoco entiendo del todo lo que se habla en ese hilo: https://groups.google.com/forum/#!to...er/72IKEFcgd6o Lo que no tengo claro es dónde hay que colocar los AND/OR precedentes (+), no sé si deben ir dentro de lo que yo he puesto entre paréntesis o fuera de ellos, porque tampoco me queda claro cómo interpretar el fragmento traducido de antes, todo resulta bastante confuso. Supongo que convendría comenzar a hacer un puñado de pruebas metódicas para tratar de averiguar cómo funciona realmente... y eso contando con que se hayan corregido los bugs o errores de los que se habla en hilo que he enlazado. Por cierto, en las dos página citadas (la enlazada por Mlesir y el hilo que he referido) y en otros muchos documentos de informática o de lógica, los AND se suelen representar abreviadamente como "&" y los OR se suelen representar como "|". Del modo siguiente %var1~A & %var2 =1 | %var3>0 Este detalle puede dejar absolutamente descolocado a quien no conozca este sistema de "abreviaturas". Última edición por Caravantes Día 18/12/14 a las 07:48:08 |
Gracias de parte de: | ||
#5
|
||||
|
||||
Perdonad que me aventure sin una lectura profunda del hilo.
Habitualmente en los lenguajes de programación de pc los and se interpretan de izquierda a derecha y en este orden cuando uno da false ya no sigue con la evaluación del resto, por cuestión de recursos.. Por ello deduzco que el and preferente se sitúa más hacia la izquierda que el and ordinario y por tanto se evalúa de los primeros... |
#6
|
Como dice angelob "a hacer pruebas". Es tedioso y ya he comentado muchas veces que la información de tasker es uno de sus grandes defectos pero es lo se hay.
No queda otra que probar metódicamente y aprender como funcionan por experiencia. Última edición por mlesir Día 20/12/14 a las 06:53:30 |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 18:34:05 (GMT +2)
HTCMania: líderes desde el 2007