Кто-нибудь знает больше Shorthand Action Script 3?

Я привык использовать сокращение if else:

var = (если утверждение)? "что-то": "что-то еще";

Существуют ли другие методы коротких рук?

4 ответа

Не уверен, что это вписывается в то, что вы спрашиваете, но это также работает:

var myVar:String = someStrThatMightBeNull || "default value if that other value is null";

Таким образом, если первое значение справа от оператора присваивания равно null/undefined, оно будет использовать буквенную строку.

var myArray:Array = new Array();

Можно заменить на:

var myArray:Array = [];

То же самое касается объектов:

var myObj:Object = new Object();

Можно заменить на:

var myObj:Object = {};
x ||= 5; // set x to 5 if x evaluates to false
x || someMethod(); // call someMethod if x evaluates to false
x && someMethod(); // call someMethod if x evaluates to true

Строго говоря, это не сокращение для оператора if/else. Это троичный оператор, называемый условным оператором.

Обратите внимание, что хотя они делают одно и то же, они читают по-разному:

// if the condition is true, we do something... maybe many things
if (condition) {
  var = 'something';
} else {
  var = 'something else';
}

// reads more clearly as an assignment based upon a condition
var = (condition) ? 'something' : 'something else';

Во многих случаях хорошо думать об этом как о сокращении. Со временем ваш мозг будет инстинктивно выбирать условный оператор, где это уместно; но, как только вы промокли, вы обнаружите, что условный оператор - отличный способ выразить код более кратко.

Другие вопросы по тегам