小编Pau*_*uli的帖子

Clojure列表与矢量

在REPL中,当您输入时

(= [1 2 3] (list 1 2 3))
Run Code Online (Sandbox Code Playgroud)

你会得到一个真实的.这是否意味着列表可以与向量相同?

clojure

6
推荐指数
1
解决办法
1078
查看次数

Django:如何通过 ModelForm 更新个人资料图片?

我正在尝试编写一个小型 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)

python django django-forms

6
推荐指数
1
解决办法
5213
查看次数

Clojure:实现comp函数

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 …

clojure

5
推荐指数
3
解决办法
1998
查看次数

在 Go 中将值四舍五入到小数点后两位

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函数有什么问题?

rounding go

5
推荐指数
1
解决办法
2497
查看次数

参观Golang练习:rot13Reader

我正在尝试解决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)

go

4
推荐指数
2
解决办法
6703
查看次数

Go 中的无缓冲通道

这是一个关于无缓冲通道的简单示例代码:

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)

go

4
推荐指数
1
解决办法
1376
查看次数

Java 类之间相互依赖

我正在学习 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取决于类StockItemStockItem类取决于ProductWarehouse类。 …

java oop

3
推荐指数
1
解决办法
1856
查看次数

Clojure:在字符串中查找"1"的位置,并以间隔的格式打印出来

我想解决这个问题:

给定由"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)

algorithm clojure

3
推荐指数
1
解决办法
167
查看次数

Rob Pike对Go中"频道的同步特性"的意思是什么?

以下是" 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)

go

3
推荐指数
1
解决办法
177
查看次数

"使用Clojure进行Web开发" - 编译错误:没有这样的var:sql/create-table

我正在使用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)

jdbc clojure compojure

2
推荐指数
1
解决办法
1412
查看次数

标签 统计

clojure ×4

go ×4

algorithm ×1

compojure ×1

django ×1

django-forms ×1

java ×1

jdbc ×1

oop ×1

python ×1

rounding ×1