Вы можете сделать это, используя функцию Select
из пакета reflect :
func Select(cases []SelectCase) (chosen int, recv Value, recvOK bool)
Select выполняет операцию выбора описанных в списке случаев. Подобно оператору выбора Go, он блокируется, пока, по крайней мере, один из случаев не может продолжить, делает равномерный псевдослучайный выбор, а затем выполняет этот случай. Он возвращает индекс выбранного случая и, если в этом случае была операция приема, полученное значение и логическое значение указывают, соответствует ли значение отправке по каналу (в отличие от нулевого значения, полученного, поскольку канал закрыт).
blockquote>Вы передаете массив структур
SelectCase
, которые определяют канал для выбора, направление операции и значение для отправки в случае операции отправки.Итак, вы можете сделать что-то вроде этого:
cases := make([]reflect.SelectCase, len(chans)) for i, ch := range chans { cases[i] = reflect.SelectCase{Dir: reflect.SelectRecv, Chan: reflect.ValueOf(ch)} } chosen, value, ok := reflect.Select(cases) # ok will be true if the channel has not been closed. ch := chans[chosen] msg := value.String()
Вы можете поэкспериментировать с более сложным примером здесь: http://play.golang.org/p/8zwvSk4kjx
вы должны использовать RichTextfor
, что
new RichText(
textAlign: TextAlign.center,
text: new TextSpan(
style: TextStyle(color: Colors.black),
children: <TextSpan>[
new TextSpan(text: 'You have pushed the button '),
new TextSpan(text: '$_counter', style: new TextStyle(fontWeight: FontWeight.bold)),
new TextSpan(text: ' time!'),
],
),
)
Вы можете попробовать добавить текстовые виджеты подряд, чтобы достичь этого.
final prefixText = Text('You have clicked the button');
final counterText = Text(' $_counter', style: TextStyle(fontWeight: FontWeight.bold),);
final suffixText = Text(' times');
return Scaffold(
body: Center(
child: Row(
children: <Widget>[prefixText, counterText, suffixText],
),
),
);
ПРИМЕЧАНИЕ. Хотя вы получаете желаемый результат с помощью этого, я думаю, что ответ @Raouf Rahiche более уместен.
Вы можете использовать шрифтWeight для него.
child: new Text (StringUtil.FORGOT_PASSWORD, style: new TextStyle (цвет: const Цвет (0xFF8C919E), fontSize: 12.0, letterSpacing: 0.3, fontWeight: FontWeight. полужирный),),