Arrays Clojure更改对象项
我是新来Clojure的。我需要在文件中找到项目,更改值并保存,但我无法更改值。我需要制作阵列的新副本吗 文件: 代码:Arrays Clojure更改对象项,arrays,object,vector,clojure,Arrays,Object,Vector,Clojure,我是新来Clojure的。我需要在文件中找到项目,更改值并保存,但我无法更改值。我需要制作阵列的新副本吗 文件: 代码: 您的代码没有以任何方式更改数据,这很好,因为它是不可变的,无论如何都不能更改。尝试在更新表单中围绕写入数据调用 还有一件小事:数据应该在-main之外 {:name "John", :index 0} {:name "Ivan", :index 1} {:name "Niki", :index 2} (ns test1.core (:gen-class)) (use
您的代码没有以任何方式更改
数据
,这很好,因为它是不可变的,无论如何都不能更改。尝试在更新
表单中围绕写入数据
调用
还有一件小事:数据
应该在-main
之外
{:name "John", :index 0}
{:name "Ivan", :index 1}
{:name "Niki", :index 2}
(ns test1.core
(:gen-class))
(use 'clojure.java.io)
(require '[clojure.string :as str])
(def file-data "names.txt")
(def findName "Ivan")
(defn write-data[xs, file]
(with-open [wrtr (writer file)]
(doall (map #(.write wrtr (str % "\n")) xs))))
(defn read-data[file]
(with-open [rdr (reader file)]
(doall (map #(load-string %) (line-seq rdr)))))
(defn -main []
(def data (read-data file-data))
(doseq [line data]
(if (= (line :name) findName)
(update-in line [:index] inc)
(println "No")))
(println data))