在REPL中,当您输入时
(= [1 2 3] (list 1 2 3))
Run Code Online (Sandbox Code Playgroud)
你会得到一个真实的.这是否意味着列表可以与向量相同?
我正在尝试编写一个小型 Django 系统。登录系统后,用户可以编辑和保存自己的个人资料信息。涉及的字段有:用户名、电子邮件、名字、姓氏、网站和图片。
问题:图片无法更新(选择图片,点击“更新”按钮后,显示“未选择文件”,页面显示的头像还是旧的)。但是其他字段都OK。
这是我的代码:
模型.py:
class UserProfile(models.Model):
user = models.OneToOneField(User)
website = models.URLField(blank=True)
picture = models.ImageField(upload_to="profile_images", blank=True)
def __str__(self):
return self.user.username
Run Code Online (Sandbox Code Playgroud)
形式.py:
class UserForm2(forms.ModelForm):
class Meta:
model = User
fields = ('username', 'email', 'first_name', 'last_name')
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ('website', 'picture')
Run Code Online (Sandbox Code Playgroud)
视图.py:
@login_required
def update_user(request):
try:
user_profile = UserProfile.objects.get(user=request.user)
except UserProfile.DoesNotExist:
return HttpResponse("invalid user_profile!")
if request.method == "POST":
update_user_form = UserForm2(data=request.POST, instance=request.user)
update_profile_form = UserProfileForm(data=request.POST, instance=user_profile)
if update_user_form.is_valid() and update_profile_form.is_valid(): …Run Code Online (Sandbox Code Playgroud) 4Clojure 问题58表述为:
编写一个允许您创建函数组合的函数.参数列表应该采用可变数量的函数,并创建一个从右到左应用它们的函数.
(= [3 2 1] ((__ rest reverse) [1 2 3 4]))
(= 5 ((__ (partial + 3) second) [1 2 3 4]))
(= true ((__ zero? #(mod % 8) +) 3 5 7 9))
(= "HELLO" ((__ #(.toUpperCase %) #(apply str %) take) 5 "hello world"))
Run Code Online (Sandbox Code Playgroud)
这__应该由解决方案取代.
在这个问题中,comp不应该使用该功能.
我找到的解决方案是:
(fn [& xs]
(fn [& ys]
(reduce #(%2 %1)
(apply (last xs) ys) (rest (reverse xs)))))
Run Code Online (Sandbox Code Playgroud)
有用.但我真的不明白reduce这里是如何运作的.它是如何代表的(apply f_1 (apply f_2 …
math.Round()在 Go 中使用四舍五入正值(这里的示例:1.015)四舍五入到小数点后两位:
fmt.Println(math.Round(1.015*100) / 100)
Run Code Online (Sandbox Code Playgroud)
我得到:1.02。没错。
但是当我使用一个函数来做同样的工作时:
func RoundHalfUp(x float64) float64 {
return math.Round(x*100) / 100
}
Run Code Online (Sandbox Code Playgroud)
我得到了1.01。
RoundHalfUp函数有什么问题?
我正在尝试解决Golang游览练习rot13Reader:
这是我的解决方案:
package main
import (
"io"
"os"
"strings"
)
type rot13Reader struct {
r io.Reader
}
func rot13(x byte) byte {
switch {
case x >= 65 && x <= 77:
fallthrough
case x >= 97 && x <= 109:
x = x + 13
case x >= 78 && x <= 90:
fallthrough
case x >= 110 && x >= 122:
x = x - 13
}
return x
}
func (r13 *rot13Reader) Read(b []byte) (int, …Run Code Online (Sandbox Code Playgroud) 这是一个关于无缓冲通道的简单示例代码:
ch01 := make(chan string)
go func() {
fmt.Println("We are in the sub goroutine")
fmt.Println(<-ch01)
}()
fmt.Println("We are in the main goroutine")
ch01 <- "Hello"
Run Code Online (Sandbox Code Playgroud)
我得到的结果:
We are in the main goroutine
We are in the sub goroutine
Hello
Run Code Online (Sandbox Code Playgroud)
去游乐场:https : //play.golang.org/p/rFWQbwXRzGw
根据我的理解,发送操作阻塞了主协程,直到子协程在 channel 上执行了接收操作ch01。然后程序退出。
在像这样的发送操作之后放置子 goroutine 之后:
fmt.Println("We are in the main goroutine")
ch01 <- "Hello"
go func() {
fmt.Println("We are in the sub goroutine")
fmt.Println(<-ch01)
}()
Run Code Online (Sandbox Code Playgroud)
发生了死锁:
We are in the main goroutine
fatal error: …Run Code Online (Sandbox Code Playgroud) 我正在学习 Play 框架。我对代表仓库库存项目产品数据模型的三个类感到困惑:
public class Product {
public Long ean;
public String name;
public String description;
public String toString() {
return name;
}
}
public class Warehouse {
public String name;
public List<StockItem> stock = new ArrayList<>();
public String toString() {
return name;
}
}
public class StockItem {
public Warehouse warehouse;
public Product product;
public Long quantity;
public String toString() {
return String.format("%d %s", quantity, product);
}
}
Run Code Online (Sandbox Code Playgroud)
类Warehouse取决于类StockItem。StockItem类取决于Product和Warehouse类。 …
我想解决这个问题:
给定由"1"和"0"组成的字符串,找到"1"的所有位置,并以间隔的格式打印它们.
例如:
"00101110101110" => 3, 5-7, 9, 11-13
我(丑陋)的解决方案:
(defn bar [x]
(letfn [(foo [mystr]
(->>
(map-indexed vector mystr)
(filter #(= (second %) \1))
(map (comp inc first))
(partition-all 2 1)
(filter #(= 2 (count %)))))]
(let [y (map #(if (> (- (second %) (first %)) 1) (print (first %) ", " (second %) "-")) (foo x))]
(print (ffirst y) "-" y (last (last (foo x)))))))
Run Code Online (Sandbox Code Playgroud)
说明:
首先,我在给定的字符串中找到"1"的位置:
(->>
(map-indexed vector mystr)
(filter #(= (second %) \1))
(map (comp …Run Code Online (Sandbox Code Playgroud) 以下是" Google I/O 2012 - Go Concurrency Patterns "(幻灯片)中的代码示例
package main
import (
"fmt"
"time"
)
func main() {
joe := boring("Joe")
ann := boring("Ann")
for i := 0; i < 5; i++ {
fmt.Println(<-joe)
fmt.Println(<-ann)
}
fmt.Println("The end")
}
func boring(msg string) <-chan string {
c := make(chan string)
go func() {
for i := 0; ; i++ {
c <- fmt.Sprintf("%s %d", msg, i)
time.Sleep(time.Second)
}
}()
return c
}
Run Code Online (Sandbox Code Playgroud)
输出:
Joe 0
Ann 0
Joe …Run Code Online (Sandbox Code Playgroud) 我正在使用Dmitri Sotnikov的"使用Clojure进行Web开发"来学习如何构建Web应用程序.当我尝试运行一些代码来访问数据库时,会发生一些编译错误:
跑完之后
>莱恩环服务器
我有:
Compiling tonglindb.models.db
Exception in thread "main" java.lang.RuntimeException: No such var: sql/create-table, compiling:(tonglindb/models/db.clj:10:3)
at clojure.lang.Compiler.analyze(Compiler.java:6380)
at clojure.lang.Compiler.analyze(Compiler.java:6322)
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3573)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6562)
at clojure.lang.Compiler.analyze(Compiler.java:6361)
at clojure.lang.Compiler.analyze(Compiler.java:6322)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708)
at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5139)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3751)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6558)
at clojure.lang.Compiler.analyze(Compiler.java:6361)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6548)
at clojure.lang.Compiler.analyze(Compiler.java:6361)
at clojure.lang.Compiler.access$100(Compiler.java:37)
at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:529)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560)
at clojure.lang.Compiler.analyze(Compiler.java:6361)
at clojure.lang.Compiler.analyze(Compiler.java:6322)
at clojure.lang.Compiler.compile1(Compiler.java:7148)
at clojure.lang.Compiler.compile(Compiler.java:7219)
at clojure.lang.RT.compile(RT.java:398)
at clojure.lang.RT.load(RT.java:438)
at clojure.lang.RT.load(RT.java:411)
at clojure.core$load$fn__5018.invoke(core.clj:5530)
at clojure.core$load.doInvoke(core.clj:5529)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5336)
at clojure.core$compile$fn__5023.invoke(core.clj:5541)
at clojure.core$compile.invoke(core.clj:5540)
at user$eval9.invoke(form-init2674485681777655551.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:6619)
at …Run Code Online (Sandbox Code Playgroud)