typestar

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

  1. bit_set[Day] guarda membresía del enum en los bits de un entero.
  2. {.Tue, .Sat} es un literal de conjunto; += {.Sun} une uno más.
  3. in prueba membresía, card cuenta, y ~ voltea a los días cerrados.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 3 en Tipos y genéricos; paso 21 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →