Extraer números en rangos específicos de una rebanada -- beginner campo con go camp codereview Relacionados El problema

Extracting numbers in specific ranges from a slice


5
vote

problema

Español

Considere una rebanada con algunos números de punto flotante:

  nums := []float64{0.17898, 0.25512, 1.98123, 1.35902, 0.97642}   

Supongamos que quiero extraer los números entre el rango desde 1 a 1.99 y los que se encuentran entre el rango de 0.0 a 0.99 (incluido ambos límites) de esta rebanada y agrada a dos nuevas rebanadas separadas cada una, ¿cuál sería la mejor manera posible de hacerlo?

Tengo el siguiente código:

  {Set-DhcpServerv4Reservation -ComputerName $DHCPSvr -IPAddress $PrinterObjects.PortName -Description "$PrinterObjects.Name & $PrinterObjects.Location"}  {Set-DhcpServerv4OptionValue -ScopeId $DHCPSvrScope -OptionId 12 $PrinterObjects.Name} 0  
  {Set-DhcpServerv4Reservation -ComputerName $DHCPSvr -IPAddress $PrinterObjects.PortName -Description "$PrinterObjects.Name & $PrinterObjects.Location"}  {Set-DhcpServerv4OptionValue -ScopeId $DHCPSvrScope -OptionId 12 $PrinterObjects.Name} 1  

¿Hay mejores enfoques que esto? (como evitar el {Set-DhcpServerv4Reservation -ComputerName $DHCPSvr -IPAddress $PrinterObjects.PortName -Description "$PrinterObjects.Name & $PrinterObjects.Location"} {Set-DhcpServerv4OptionValue -ScopeId $DHCPSvrScope -OptionId 12 $PrinterObjects.Name} 2 & amp; {Set-DhcpServerv4Reservation -ComputerName $DHCPSvr -IPAddress $PrinterObjects.PortName -Description "$PrinterObjects.Name & $PrinterObjects.Location"} {Set-DhcpServerv4OptionValue -ScopeId $DHCPSvrScope -OptionId 12 $PrinterObjects.Name} 3 , o una función que se puede usar, ¿de lo que no soy consciente? - Para, por ejemplo: una función que puede comparar la rebanada ¿Elementos con un valor dado o rango de valores?)

Soy nuevo para ir, ¡así que me pregunto si podría haber un enfoque posiblemente mejor para esto! Cualquier ayuda es apreciada :)

Original en ingles

Consider a slice with some floating point numbers:

nums := []float64{0.17898, 0.25512, 1.98123, 1.35902, 0.97642} 

Suppose I want to extract the numbers lying in between the range from 1 to 1.99 and ones lying in between the range from 0.0 to 0.99 (inclusive of both limits) from this slice and append it into two new separate slices each, then what would be the best possible way to do so?

I have the following code:

package main  import (     "fmt" )  func main() {     nums := []float64{0.17, 0.25, 2.19, 0.98, 1.35, 5.97, 1.21}     var oneSlice, zeroSlice []float64     for _, num := range nums {         if num <= 1.99 && num >= 1.0 {             oneSlice = append(oneSlice, num)             } else if num <= 0.99 && num >= 0.0 {             zeroSlice = append(zeroSlice, num)             }      }        fmt.Print("1.0-1.99 values:", oneSlice, "\n0.0-0.99 values:", zeroSlice) }  
1.0-1.99 values:[1.35 1.21] 0.0-0.99 values:[0.17 0.25 0.98] 

Are there any better approaches than this? (such as avoiding the if & else, or a function that can be used, which I'm not aware of? - for e.g.: a function which can compare slice elements with a given value or range of values?)

I'm new to Go, so am just wondering if there could be a possibly better approach to this! Any help is appreciated :)

     
     
     

Lista de respuestas


Relacionados problema

12  Entrevista de concurrencia  ( Concurrency interview ) 
Un poco de vuelta, tuve una entrevista donde plantearon un problema, en resumen: Mire un determinado directorio, y procese archivos JSON entrantes Estos ...

1  Solicitar enrutador escrito en Go  ( Request router written in go ) 
Comencé a aprender Idioma y me imaginé escribir otro enrutador de solicitud, ya que lo necesito para mi próximo proyecto Go. Como es lo que es lo primero que ...

7  Árboles binarios equivalentes (un recorrido por go)  ( Equivalent binary trees a tour of go ) 
Cualquier sugerencia sobre cómo mejorar el código que se muestra a continuación para la Ejercicio de go-tour ? < / p> Descripción del ejercicio: Puede ha...

1  Formateo de un archivo de texto cambia como HTML  ( Formatting a changes text file as html ) 
Tengo una función que se usa para convertir texto (un archivo de cambios) en HTML para leer. La función es esencialmente basada en línea: si la línea es de es...

5  Herramienta para calcular el tiempo promedio que toma para una solicitud de tracción GitHub para fusionar  ( Tool to calculate the average time that takes for a github pull request to get m ) 
Estoy aprendiendo, y este es mi primer intento de una herramienta de línea de comandos que usa la API de GitHub para calcular el tiempo promedio que toma una ...

2  Consulta Seleccione e inserte si no existe  ( Query select and insert if not exists ) 
¿Hay alguna buena manera de hacer este método más corto? "var text = document.getElementById('text'); var greeting = ['Hello. I am a console wannabe.', ...

3  Archivo de registro diferido Cerrar  ( Deferred log file close ) 
Mi código funciona en que se compila, y cuando se ejecuta, escribe un archivo de registro utilizando un escritor búfer. pero me pregunto si: Soy correcto...

7  Descarga concurrente en Go  ( Concurrent download in go ) 
Escribí un programa para descargar archivos en manera concurrente / paralelo (gomaxprocs & gt; 1). Este es mi programa 2 nd (no juguete) escrito en Go. Po...

6  Implementando una API de descanso en Ir usando Gorilla / Mux y Gorm  ( Implementing a rest api in go using gorilla mux and gorm ) 
Mientras está aprendiendo, decidí implementar una API de descanso simple para conocer el idioma y, dado que estoy inexperto en el principio, apreciaría cualq...

4  Pasando alrededor del contexto.Context en Golang  ( Passing around context context in golang ) 
Actualmente soy "graciosamente" Manejar el servidor HTTP net/http Apagado que funciona perfectamente bien ( No le estoy pidiendo que revise el cierre del se...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos