bit_set en Odin
Días de mercado empacados en bits: literales de conjunto, +=, membresía, card y complemento.
package main
import "core:fmt"
Day :: enum {Mon, Tue, Wed, Thu, Fri, Sat, Sun}
main :: proc() {
// A bit_set packs enum membership into an integer's bits.
market_days: bit_set[Day] = {.Tue, .Sat}
market_days += {.Sun}
fmt.println("open on Tuesday?", .Tue in market_days)
fmt.println("open on Monday? ", .Mon in market_days)
fmt.println("days open:", card(market_days))
fmt.println("closed:", ~market_days)
}
Cómo funciona
bit_set[Day]guarda membresía del enum en los bits de un entero.{.Tue, .Sat}es un literal de conjunto;+= {.Sun}une uno más.inprueba membresía,cardcuenta, y~voltea a los días cerrados.
Palabras clave y builtins usados aquí
bit_setcardenumimportinpackageproc
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 411
- Tokens
- 102
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 94 segundos.
Paso 3 de 3 en Tipos y genéricos; paso 21 de 27 en Fundamentos del lenguaje.