Непонятно, что, по вашему мнению, должен делать ваш код, но вот что он на самом деле делает:
Вы звоните a
со значением false
:
Он проверяет, является ли c
истинным:
if c {
, но это не так, поэтому он продолжает
Он снова вызывает a
, на этот раз со значением true
, но полностью игнорируя результат:
a(true)
Затем возвращается false:
return "false", false
Это означает, что шаг # 2это полное отсутствие операции (и, вероятно, полностью удалено компилятором).
Может быть, вы хотите что-то сделать с возвращенным значением a(true)
?