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
(Of T As IComparable(Of T))restringe T a cosas que se comparan.- Un solo
Largestsirve igual a Integer y a String — la inferencia elige T. - Las tuplas
(name As String, score As Integer)se leen por nombre de campo.
Palabras clave y builtins usados aquí
DimEachEndForFunctionIfIntegerNewNextOfReturnStringThen
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.
Paso 3 de 3 en Tipos por valor; paso 21 de 29 en Fundamentos del lenguaje.