
php小编子墨在Go模板中,我们经常需要对照片进行处理,而使用随机Int可以帮助我们实现一些有趣的效果。随机Int是一种生成随机整数的函数,我们可以利用它在模板中对照片进行随机化的操作,比如随机展示不同的照片、随机给照片添加滤镜效果等。本文将详细介绍如何在Go模板中使用随机Int来处理照片,并给出一些实际应用的示例。无论你是初学者还是有一定经验的开发者,都可以通过本文学习到一些有关Go模板和随机Int的实用技巧。
问题内容
我的代码中有一个简单的随机整数,我将其传递给模板
min := 1
max := 1563
photo := rand.intn(max - min + 1)
fmt.println(photo)
tmpl.executetemplate(w, "index.html", struct {
pages []page
currentpage int
totalpage int
nextpage int
previouspage int
lastpage int
shownext bool
showprevious bool
photo int
}{
pages: pages,
currentpage: pageindex + 1,
totalpage: totalpaginationpage,
nextpage: pageindex + 1,
previouspage: pageindex - 1,
lastpage: totalpaginationpage - 1,
shownext: pageindex+1 < totalpaginationpage,
showprevious: pageindex-1 >= 0,
photo: photo,
})
这个想法是在我的模板中随机化一张照片(我的文件夹中有 1563 张)
{{范围.页}}
src="{{.photo}}" 会使模板崩溃,就像变量未正确传递一样。也许问题是这是在一个循环内,所以我需要每篇文章一个随机数才能显示照片?
还有其他方法可以直接在模板中执行吗?
更新
感谢我现在得到的指导
min := 1 max := 1563 photos := make([]int, len(pages)) for i := range photos { photos[i] = rand.intn(max - min + 1) } tmpl.executetemplate(w, "index.html", struct { pages []page currentpage int totalpage int nextpage int previouspage int lastpage int shownext bool showprevious bool photo []int }{ pages: pages, currentpage: pageindex + 1, totalpage: totalpaginationpage, nextpage: pageindex + 1, previouspage: pageindex - 1, lastpage: totalpaginationpage - 1, shownext: pageindex+1 < totalpaginationpage, showprevious: pageindex-1 >= 0, photo: photos, })在模板中
{{range $idx, $page := .pages}}{{end}}也尝试过
但不幸的是,一旦我调用,模板就会停止执行
{{index $.Photos $idx}}我认为这是我这边的某种打字错误?
解决方法
{{range}}操作会更改点,因此{{range .pages}}内的{{.photo}}将解析为.pages的元素。使用
$来引用“外层”,传递给模板执行的原始值:src="{{$.photo}}"虽然这只是一个整数,但您可能希望在路径或 url 中使用它,如下所示:
src="/path/to/images?id={{$.photo}}"注意:如果您想为所有页面使用不同的图像,则必须为每个页面传递不同的数字,而不仅仅是单个数字。然后在页面中添加一个
photo字段,然后您可以在{{range}}中引用它,如原始代码中的{{.photo}}。您写道,您无法修改
page,因为它来自您的数据库。如果是这样,则传递一段随机数并使用index访问它们,如下所示:min := 1 max := 1563 photos := make([]int, len(pages)) for i := range photos { photos[i] = rand.intn(max - min + 1) } tmpl.executetemplate(w, "index.html", struct { pages []page currentpage int totalpage int nextpage int previouspage int lastpage int shownext bool showprevious bool photo []int }{ pages: pages, currentpage: pageindex + 1, totalpage: totalpaginationpage, nextpage: pageindex + 1, previouspage: pageindex - 1, lastpage: totalpaginationpage - 1, shownext: pageindex+1 < totalpaginationpage, showprevious: pageindex-1 >= 0, photo: photos, })在模板中:
{{range $idx, $page := .pages}}{{end}}
或者注册一个
random函数,您可以从模板中调用该函数:// parse the template as you did, but first register a random function: min, max := 1, 1563 tmpl, err := template.new("").funcs(template.funcmap{ "random": func() int { return rand.intn(max - min + 1) }, }).parsefiles("template-name.html")您可以从模板中调用它,如下所示:
{{range .Pages}}{{end}}
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
更多热门AI工具
更多相关专题
string转int在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。
463
2023.08.02
int占多少字节int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
544
2024.08.29
数据库三范式数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。
358
2023.06.29
如何删除数据库删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。
2082
2023.08.14
vb怎么连接数据库在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。
349
2023.08.31
MySQL恢复数据库MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。
256
2023.09.05
更多热门下载
更多相关下载
更多精品课程
相关推荐/热门推荐/最新课程更多最新文章











