Directorio de artículos
-
- 1. Limite el valor pasado al tipo numérico.
- 2. Determinar si varios valores pasados no están vacíos
- 3. Método para determinar si una variable es verdadera
- 3. Utilice seq para determinar si varios valores pasados por el usuario están vacíos.
- 4. Bucle de verificación para determinar si el valor está vacío
- 5. Operación de negación
- 6. Encuentre si existe una clave en el mapa.
- 7.Uso del método doall
- 8. Escribe toda la información obtenida en la cartulina.
1. Limite el valor pasado al tipo numérico.
En Clojure, no hay restricciones de tipo para pasar parámetros porque Clojure es un lenguaje de tipo dinámico. Esto significa que puede pasar cualquier tipo de valor como parámetro.
Si desea limitar el tipo de parámetro a un tipo numérico, puede usar una función dentro de la función number?
para verificar el tipo de parámetro
(defn my-func [x]
(if (number? x)
(println "参数是一个数字")
(println "参数不是一个数字")))
(my-func 10) ; 输出:参数是一个数字
(my-func "hello") ; 输出:参数不是一个数字
2. Determinar si varios valores pasados no están vacíos
Utilice if
o when
para determinar si varios valores están vacíos y realice las operaciones correspondientes
(defn my-func [x y z]
(if (and (not (empty? x))
(not (empty? y))
(not (empty? z)))
(do
(println "调用方法的函数"))
(println "传值为空,请提供有效的参数")))
(my-func "a" "b" "c") ; 输出:调用方法的函数
(my-func "a" "" "c") ; 输出:传值为空,请提供有效的参数
La función my-func acepta tres parámetros x, y y z. Utilice y para comprobar si tres parámetros están vacíos al mismo tiempo. Si los tres parámetros no están vacíos, do
se ejecutará el contenido del bloque de código, es decir, la función que llama al método. De lo contrario, aparecerá el mensaje "El valor pasado está vacío, proporcione parámetros válidos".
Tenga en cuenta que aquí se utiliza una función empty?
para determinar si el parámetro está vacío. empty?
Las funciones pueden comprobar si cadenas, listas, vectores, conjuntos, etc. están vacíos.
Si necesita determinar si el valor de otros tipos está vacío, puede usar la función correspondiente, por ejemplo nil?
, para determinar si es nulo.
3. Método para determinar si una variable es verdadera
Utilice true?
una función para determinar si una variable es verdadera. true?
La función acepta un parámetro y devuelve true
o false
, si el parámetro es verdadero, devuelve verdadero; de lo contrario, devuelve falso.
(true? true) ; 返回 true
(true? false) ; 返回 false
(def x 10)
(true? x) ; 返回 true,因为 x 的值不是 nil 或 false
(def y nil)
(true? y) ; 返回 false,因为 y 的值是 nil
Nota: true?
La función solo puede determinar si el parámetro es verdadero y no puede determinar si otros valores son verdaderos, como cadenas que no están vacías o números distintos de cero. Si necesita determinar si otros valores son verdaderos, puede utilizar not
una función o some
función para realizar la determinación.
3. Utilice seq para determinar si varios valores pasados por el usuario están vacíos.
En Clojure, puede utilizar seq
funciones para determinar si varios valores son nulos. seq
La función puede convertir un conjunto en una secuencia (secuencia), si el conjunto está vacío, devuelve nil
, de lo contrario, devuelve una secuencia no vacía.
(defn my-func [x y z]
(if (seq [x y z])
(do
(println "调用方法的函数"))
(println "传值为空,请提供有效的参数")))
(my-func "a" "b" "c") ; 输出:调用方法的函数
(my-func "a" "" "c") ; 输出:传值为空,请提供有效的参数
Nota: seq
La función solo puede determinar si el conjunto está vacío
4. Bucle de verificación para determinar si el valor está vacío
(defn process-values [values]
(if (empty? values)
(println "所有值都已处理完毕")
(let [first-value (first values)]
(if (empty? first-value)
(do
(println "值为空,请提供有效的参数")
(recur (rest values)))
(do
(println "处理值:" first-value)
(recur (rest values))))))
(process-values ["a" "b" "c"]) ; 输出:处理值: a,处理值: b,处理值: c,所有值都已处理完毕
(process-values ["a" "" "c"]) ; 输出:处理值: a,值为空,请提供有效的参数,处理值: c,所有值都已处理完毕
En el ejemplo anterior, process-values
la función acepta un values
parámetro llamado , que es una colección (como un vector) que contiene múltiples valores. La función primero verifica values
si está vacío y, si está vacío, aparece el mensaje "Todos los valores han sido procesados". De lo contrario, use firs
la función t para obtener value
el primer valor en sy determinar si está vacío. Si está vacío, aparece el mensaje "El valor está vacío, proporcione parámetros válidos" y se utiliza recur
la función.recursividadLlame process-values
a la función para manejar el siguiente valor. Si no está vacío, genere "valor de proceso:" más el valor actual y use recur
la función para llamar recursivamente process-value
a la función s para procesar el siguiente valor.
5. Operación de negación
Utilice not
una función para negar un valor booleano.
(defn negate-value [value]
(if (not value)
(println "值为真")
(println "值为假")))
(negate-value true) ; 输出:值为假
(negate-value false) ; 输出:值为真
La función de valor negativo acepta un parámetro denominado valor y utiliza la función not para negar el valor. Si el valor es verdadero, genera "el valor es falso", de lo contrario genera "el valor es verdadero"
6. Encuentre si existe una clave en el mapa.
Utilice contains?
una función para comprobar si existe una clave especificada en una matriz asociativa (mapa)
;;(contains? map key)
(def my-map {
:a 1 :b 2 :c 3})
(if (contains? my-map :a)
(println "Key :a exists in the map")
(println "Key :a does not exist in the map"))
(if (contains? my-map :d)
(println "Key :d exists in the map")
(println "Key :d does not exist in the map"))
Se crea una matriz asociativa my-map, que contiene las claves: a, :b y :c. Luego usamos la función contiene? para verificar si las claves :a y :d existen en my-map
7.Uso del método doall
doall
Las funciones se utilizan para forzar la evaluación y consumir una secuencia. Lo que hace es asegurar que cada elemento de la secuencia sea evaluado, incluso si no usas o ignoras el resultado de la secuencia.
doall
La función se usa así:
(doall coll)
coll
es una secuencia de valores requeridos.
(def my-seq (range 10)) ; 创建一个序列
(def result (doall (map inc my-seq))) ; 对序列中的每个元素加1,并使用doall强制求值
(println result) ; 打印结果
En el ejemplo anterior, creamos una secuencia my-seq que contiene los elementos del 0 al 9. Luego usamos map
la función y la función inc para sumar 1 a cada elemento de la secuencia. Sin embargo, dado que map
se evalúa de forma perezosa, no evalúa la secuencia de inmediato. Para garantizar que se evalúen todos los elementos, utilizamos doall
una función para almacenar su resultado en formato result
. Finalmente, imprimimos result
el valor.
Tenga en cuenta que doall
la función obliga a evaluar toda la secuencia, lo que puede causar problemas de rendimiento, especialmente cuando la secuencia es muy grande. Por lo tanto, sólo utilice la función doall si realmente necesita evaluar la secuencia completa.
8. Escribe toda la información obtenida en la cartulina.
js/document.execCommand
método
(defn write-to-clipboard [text]
(let [temp-textarea (.createElement js/document "textarea")]
(.setAttribute temp-textarea "readonly" "")
(set! (.-value temp-textarea) text)
(.appendChild js/document.body temp-textarea)
(.select temp-textarea)
(.execCommand js/document "copy")
(.removeChild js/document.body temp-textarea)))
;; 调用示例
(write-to-clipboard "这是要写入粘贴板的信息")