"的含义:"和"?"

时间:2018-02-13 04:28:49

标签: function syntax return ternary-operator autoit

我找到了分号& AutoIt脚本的# clean_data.py import os import sys sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))))) from src.utils.helpers import func_name func_name() # helpers.py def func_name(): print('I'm a helper function.') 语句中的问号:

Return

我知道#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 Func A() ;do somethingA EndFunc Func B($a,$b,$c) ;do somethingB EndFunc Func C($a,$b,$c,$d) ;do somethingC EndFunc Func CallFunc( $f, $a = Default, $b = Default, $c = Default, $c = Default ) Return FuncName($f) = "A" ? $f() : FuncName($f) = "B" ? $f($a,$b,$c) : $f($a,$b,$c,$d) EndFunc Example() Func Example() CallFunc( A ) CallFunc( B, 1, 2, 3 ) CallFunc( C, 1, 2, 3, 4 ) EndFunc 会返回存储在变量中的函数的名称,但我不知道什么是问号&分号是指FuncName()语句中的分号:

Return

1 个答案:

答案 0 :(得分:2)

  

我不知道问号&分号意义

根据Documentation - Keywords - Ternary operator

  

根据表达式的结果有条件地选择两个响应中的一个。

例如;

Return $g_bBlockInput ? $MOE_BLOCKDEFPROC : $MOE_RUNDEFPROC

在功能上等同于:

If $g_bBlockInput Then

    Return $MOE_BLOCKDEFPROC

Else

    Return $MOE_RUNDEFPROC

EndIf

所以

Return FuncName($f) = "A" ? $f() : FuncName($f) = "B" ? $f($a,$b,$c) : $f($a,$b,$c,$d)

等于:

If FuncName($f) = "A" Then

    Return $f()

Else

    If FuncName($f) = "B" Then

        Return $f($a,$b,$c)

    Else

        Return $f($a,$b,$c,$d)

    EndIf

EndIf

无论代码的目的是什么,Switch...Case...EndSwitch都是如此。三元运算符的普遍使用包括条件赋值。例如:

Global Const $g_bState = True
Global Const $g_sState = $g_bState ? 'ON' : 'OFF'

ConsoleWrite('$g_bState = ' & $g_sState & @CRLF)