ltVal = node.left != null ? node.left.height : 0;
Я думаю, что это написано на Java, может кто-нибудь объяснить, что это значит? Невозможно понять это сокращенное обозначениеЧто такое? in Java
ltVal = node.left != null ? node.left.height : 0;
Я думаю, что это написано на Java, может кто-нибудь объяснить, что это значит? Невозможно понять это сокращенное обозначениеЧто такое? in Java
Он называется тернарным оператором, и это только оператор, который принимает 3
операндов. В лучшем смысле это условный оператор, которые представляют меньший формат
Общий синтаксис:
boolean expression ? value1 : value2
ваш пример:
ltVal = node.left != null ? node.left.height : 0;
так же, как и
if(node.left != null)
itVal = node.left.height
else
itval = 0;
Спасибо за очистку вещей, я смущаюсь большую часть времени, если я не вижу никаких скобок xD. Не понимал, что троичный оператор назначается «ltVal», пока кто-то не объяснит xD – ZeferiniX
@ ZeferiniX не волнуйтесь, вы получите используйте для этого. вы должны использовать этот вид кодирования, потому что lambda уже прибыла на Java. :) –
Является ли хорошей практикой не ставить круглые скобки? Большинство примеров, которые я нахожу, использует тройные операторы, не имеют круглых скобок @ _ @ Не могли бы это понять, если бы это было ltVal = ((node.left! = Null)? Node.left.height: 0); – ZeferiniX
ли вы действительно пометить это «линией»? Я думаю, вы неправильно поняли тег. – Maroun
Прочтите http://en.wikipedia.org/wiki/%3F: – NPE
Если 'node.left' не' null', присвойте его высоте 'ltVal', иначе присвойте ему нулевое значение. Google «Тернарные операторы» – alfasin