typestar

Genéricos y tuplas en Visual Basic

Parámetros de tipo (Of T), restricciones y campos de tupla con nombre.

Console.WriteLine(Largest({3, 141, 59}))
Console.WriteLine(Largest({"fig", "plum", "apricot"}))

Dim pairs As New List(Of (name As String, score As Integer))
pairs.Add(("ada", 99))
pairs.Add(("alan", 87))
Console.WriteLine($"{pairs(0).name} tops {pairs(1).name}")

Function Largest(Of T As IComparable(Of T))(items As IEnumerable(Of T)) As T
    Dim best = items.First()
    For Each item In items
        If item.CompareTo(best) > 0 Then best = item
    Next
    Return best
End Function

Cómo funciona

  1. (Of T As IComparable(Of T)) restringe T a cosas que se comparan.
  2. Un solo Largest sirve igual a Integer y a String — la inferencia elige T.
  3. Las tuplas (name As String, score As Integer) se leen por nombre de campo.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
464
Tokens
141
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 113 segundos.

Escribe este fragmento

Paso 3 de 3 en Tipos por valor; paso 21 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →