Ответ 1
alts!
- это функция, которая принимает вектор каналов для приема из и/или каналов со значениями, которые должны быть помещены на них (в виде двухтонных векторов: [c v]
). Вектор может быть динамически построен; вызов кода alts!
может не знать, сколько каналов он будет выбирать среди (и действительно, это число не обязательно должно быть постоянным во всех вызовах).
alt!
- это удобный макрос, который в основном действует как крест между cond
и alts!
. Здесь число "портов" (каналы или пары каналов + значения) должно быть известно статически, но на практике это довольно часто бывает, и синтаксис cond
-подобный очень ясен.
alt!
расширяется до несколько сложного выражения, используя alts!
; помимо синтаксического удобства, он не предлагает дополнительных функций.