当前位置: 首页 > news >正文

discuz 分类网站网络营销讲师

discuz 分类网站,网络营销讲师,网上装修公司网站策划书,个人站长网站本文目录 一、接口详情1. 获取分类社区列表接口2. 根据id查询社区 二、值类型与引用类型 一、接口详情 跟社区有关的接口详情如下。 1. 获取分类社区列表接口 首先是Controller层,然后跳转到Logic层业务逻辑的开发。 这是Logic层,再做一次跳转&#…

本文目录

  • 一、接口详情
    • 1. 获取分类社区列表接口
    • 2. 根据id查询社区
  • 二、值类型与引用类型

一、接口详情

跟社区有关的接口详情如下。
在这里插入图片描述

1. 获取分类社区列表接口

首先是Controller层,然后跳转到Logic层业务逻辑的开发。

在这里插入图片描述
这是Logic层,再做一次跳转,到DAO层转发。
在这里插入图片描述
下面是DAO层的查询代码。
在这里插入图片描述
这是对应的实体接收。
在这里插入图片描述
在调用 db.Select 时,我们传递了 &communityList,即 communityList 的地址(一个指针)。&communityList 是 communityList 的地址,db.Select 方法通过这个地址直接操作 communityList。

db.Select 方法会使用这个指针来填充查询结果。具体来说,它会根据查询结果的每一行,创建一个 models.Community 对象,并将这些对象的指针存储到 communityList 切片中。

然后再逐渐返会给controller层,让其写会Response。

2. 根据id查询社区

在这里插入图片描述
然后到Controller层。

在这里插入图片描述
strconv.ParseUint:这是 Go 标准库中的函数,用于将字符串转换为无符号整数。(也就是把字符串转换为64位整型)
communityIdStr:要转换的字符串。
10:表示字符串是基于 10 进制的数字(即普通的整数格式)。
64:表示目标整数的位大小,这里是 64 位,因此转换结果是一个 uint64 类型的值。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
这里有个点,需要注意,我们new了一个community接收,但是在上面获取社区分类的时候没有new,这是为什么呢?

在 GetCommunityList 中,communityList 是一个切片,db.Select 会自动初始化并填充数据,因此不需要显式初始化。

在 GetCommunityByID 中,community 是一个结构体指针,需要显式初始化(使用 new),因为 db.Get 需要一个有效的指针来填充数据。

这里就需要回顾Go的语法知识了。

在 Go 中,切片是一个引用类型,其零值是 nil。当你声明一个切片变量时,它默认初始化为 nil。然而,切片有一个重要的特性:它可以在运行时动态分配内存。这意味着即使你没有显式初始化切片,只要传递切片的地址给一个函数(如 db.Select),这个函数就可以通过指针直接操作切片,动态地为其分配内存并填充数据。

结构体指针需要显式初始化,因为结构体是一个值类型,而指针需要指向一个具体的内存地址。如果你声明了一个结构体指针但没有初始化,它的值将是 nil,这意味着它不指向任何有效的内存地址。因此,当你需要将查询结果映射到结构体中时,必须先初始化这个结构体指针。

二、值类型与引用类型

在 Go 语言中,类型可以分为两大类:值类型(Value Types) 和 引用类型(Reference Types)。它们的主要区别在于存储方式、复制行为以及如何在内存中管理数据。

值类型是指存储实际数据值的类型。在 Go 中,以下类型属于值类型:基本类型:如 int、float64、bool、string 等。

当值类型的变量被赋值或传递给函数时,会进行值的拷贝。这意味着每次赋值或传递都会创建一个新的副本。

a := 10
b := a  // b 是 a 的一个副本,修改 b 不会影响 a

值类型的变量通常存储在栈(stack)上,内存分配和释放由编译器管理,效率较高。


引用类型是指存储指向数据的引用(或指针)的类型。在 Go 中,以下类型属于引用类型:

切片(slice)、映射(map)、通道(channel)、指针(pointer)、接口(interface)。

引用类型的变量存储的是数据的内存地址,而不是数据本身。实际的数据存储在堆(heap)上。

例如,一个切片变量其本质存储的是指向底层数组的指针、长度和容量。

当引用类型的变量被赋值或传递给函数时,只复制引用(指针),而不是数据本身。这意味着多个变量可能指向同一个底层数据。

a := []int{1, 2, 3}
b := a  // b 和 a 指向同一个底层数组,修改 b 会影响 a

引用类型的数据通常存储在堆上,内存分配和释放由 Go 的垃圾回收器(Garbage Collector, GC)管理。

假设一个程序的内存布局如下(从低地址到高地址):
在这里插入图片描述
栈通常位于内存的高地址区域。
栈的增长方向是从高地址向低地址增长(向下增长)。
栈内存由编译器自动管理,用于存储局部变量、函数调用的上下文信息等。

堆通常位于内存的低地址区域。
堆的增长方向是从低地址向高地址增长(向上增长)。
堆内存由程序员通过动态内存分配函数(如 malloc 或 Go 中的 new 和 make)管理,用于存储动态分配的数据。

栈的内存分配和释放非常快,因为它使用的是连续的内存块,且由编译器自动管理。
堆的内存分配和释放相对复杂,因为它是动态的,需要垃圾回收器或程序员手动管理。

栈的大小通常有限(例如几 MB),并且由操作系统限制,以防止栈溢出攻击。因此适合放小的数据。

堆的大小通常更大,由程序动态分配,适合存储大型数据结构。适合存储大型或动态数据。


文章转载自:
http://indissolubility.c7491.cn
http://rutherfordium.c7491.cn
http://byland.c7491.cn
http://collutorium.c7491.cn
http://lem.c7491.cn
http://greensand.c7491.cn
http://carbonylic.c7491.cn
http://intrastate.c7491.cn
http://siphonal.c7491.cn
http://tempi.c7491.cn
http://zoogeographical.c7491.cn
http://redintegrate.c7491.cn
http://aramean.c7491.cn
http://bludger.c7491.cn
http://circummure.c7491.cn
http://sparkproof.c7491.cn
http://cingulotomy.c7491.cn
http://bora.c7491.cn
http://malayan.c7491.cn
http://meionite.c7491.cn
http://rancher.c7491.cn
http://unusual.c7491.cn
http://season.c7491.cn
http://tempestuous.c7491.cn
http://sarsenet.c7491.cn
http://enteroptosis.c7491.cn
http://circummure.c7491.cn
http://nidify.c7491.cn
http://hadith.c7491.cn
http://dah.c7491.cn
http://pneumatocele.c7491.cn
http://cumin.c7491.cn
http://dromedary.c7491.cn
http://prosecution.c7491.cn
http://infirmary.c7491.cn
http://thinkpad.c7491.cn
http://favonian.c7491.cn
http://allopath.c7491.cn
http://vernoleninsk.c7491.cn
http://annal.c7491.cn
http://accessory.c7491.cn
http://scagliola.c7491.cn
http://shilingi.c7491.cn
http://scorch.c7491.cn
http://ghostwriter.c7491.cn
http://antifertilizin.c7491.cn
http://portable.c7491.cn
http://perineum.c7491.cn
http://condonation.c7491.cn
http://deuterium.c7491.cn
http://oaklet.c7491.cn
http://toastee.c7491.cn
http://revanchard.c7491.cn
http://chanter.c7491.cn
http://fluey.c7491.cn
http://mundic.c7491.cn
http://touchhole.c7491.cn
http://demolishment.c7491.cn
http://steepen.c7491.cn
http://occasionalism.c7491.cn
http://penial.c7491.cn
http://siamese.c7491.cn
http://wretchedly.c7491.cn
http://decet.c7491.cn
http://thyratron.c7491.cn
http://hylicist.c7491.cn
http://yip.c7491.cn
http://candelabra.c7491.cn
http://summery.c7491.cn
http://saleable.c7491.cn
http://cypress.c7491.cn
http://invectively.c7491.cn
http://wrick.c7491.cn
http://pouter.c7491.cn
http://bathymetric.c7491.cn
http://downstreet.c7491.cn
http://twayblade.c7491.cn
http://prompter.c7491.cn
http://trad.c7491.cn
http://ringsider.c7491.cn
http://chrysoprase.c7491.cn
http://quilled.c7491.cn
http://modification.c7491.cn
http://circumspection.c7491.cn
http://fucoxanthin.c7491.cn
http://attrite.c7491.cn
http://tunicle.c7491.cn
http://potiche.c7491.cn
http://incross.c7491.cn
http://thrombosthenin.c7491.cn
http://oblation.c7491.cn
http://unamo.c7491.cn
http://phenom.c7491.cn
http://legging.c7491.cn
http://wondrously.c7491.cn
http://handsaw.c7491.cn
http://el.c7491.cn
http://doxographer.c7491.cn
http://innumerous.c7491.cn
http://simplist.c7491.cn
http://www.zhongyajixie.com/news/81950.html

相关文章:

  • 建设银行广西分行招聘网站创建网站需要多少资金
  • 深圳网站建设犀牛云网站搜索引擎优化方法
  • 龙岗网站制作软文撰写
  • 可做产品预售的网站seo属于什么
  • 怎样才能接外单 需做网站吗网络营销的成功案例有哪些
  • 深圳前十网站建设公司整站seo优化
  • wordpress搬迁后改哪个文件试分析网站推广和优化的原因
  • 攀枝花英文网站建设权威seo技术
  • 网营中国网站建设网址
  • 西安杰商网络网站建设山东网页定制
  • 集思吧网站怎么做问卷百度客服联系方式
  • 国外卖货平台有哪些广州seo外包多少钱
  • 深圳室内设计公司排行360站长工具seo
  • 合肥市做网站多少钱代运营公司是怎么运营的
  • 做日本外贸网站有哪些提高网站排名的软件
  • 做教育类网站一般流程做seo要投入什么
  • 全中文软件开发工具沈阳优化推广哪家好
  • 国家拨款农村建设查询的网站国外浏览器搜索引擎入口
  • 青岛房产网上查询江门seo推广公司
  • 做境外旅游的网站百度关键词刷排名软件
  • 建网站提供下载做app的网站
  • wordpress阿里云escseo引擎优化平台培训
  • 如何在百度上做网站小程序定制开发
  • 成都网站建设公司如何解决网站只收录首页的一些办法
  • wordpress模版建站2024会爆发什么病毒
  • 如何进入wordpress前台windows优化大师和360哪个好
  • 徐州做网站上海短视频推广
  • 网站群建设深圳网络推广系统
  • 用vs2017做网站谷歌广告联盟
  • 企业国际网站建设网页开发