初识Sass

1、Sass概述

Sass(Syntactically Awesome Style Sheets)是一种CSS预处理器,用于增强CSS的功能和灵活性。

  1. 定义与起源

    • Sass最初由Hampton Catlin设计,由Natalie Weizenbaum开发。
    • 它是对CSS3的一种扩充,允许使用变量、嵌套规则、混入、选择器继承等特性。
  2. 语法

    • Sass包括两套语法:缩进语法(类似于Haml)和SCSS语法(类似于CSS)。
    • 缩进语法使用缩进来表示代码块,而SCSS语法使用大括号和分号。
  3. 核心特性

    • 变量:Sass支持定义变量,以美元符号($)开头,用于存储和重用CSS属性值。
    • 嵌套规则:允许将选择器嵌套在其他选择器中,使样式表更具可读性。
    • 混入(Mixin):类似于函数的代码块,可以包含一组CSS属性,并在需要时调用,减少代码重复。
    • 继承:一个选择器可以继承另一个选择器的样式,提高可维护性。
    • 运算符:Sass支持算术和逻辑运算符,用于数值计算和条件判断。
    • 命名空间:允许将相关的样式组织在命名空间内,避免全局作用域的冲突。
  4. 兼容性

    • Sass最终会编译成标准的CSS,因此与现有的CSS解析器和浏览器兼容。
  5. 使用场景

    • Sass适用于大型项目,通过其强大的功能提高CSS的可维护性和可扩展性。
  6. 性能与优化

    • libSass是一个由C++实现的Sass编译器,性能优于Ruby实现,并已被集成到多种开发环境中。

Sass通过引入这些高级功能,使CSS的编写更加简洁、灵活和高效,为前端开发者提供了一种更有效的CSS管理方式。

2、Sass的优势

Sass(Syntactically Awesome Style Sheets)的优势主要体现在以下几个方面:

  1. 变量和函数

    • Sass允许你定义变量,并在整个样式表中重复使用这些变量。这有助于保持代码的一致性,并使得在项目中修改颜色、字体或其他常用值变得更加容易。
    • Sass还支持函数(或称为混入,mixins),可以创建可重用的样式块。这些样式块可以在多个选择器中重复使用,从而减少代码的冗余。
  2. 嵌套规则

    • Sass允许你将CSS选择器嵌套在其他选择器中,这有助于组织代码并使其更具可读性。通过嵌套,你可以清晰地看到哪些样式应用于特定的元素和子元素。
  3. 继承

    • Sass的继承功能允许一个选择器继承另一个选择器的样式。这有助于保持代码的DRY(Don’t Repeat Yourself)原则,减少不必要的重复。
  4. 运算和颜色函数

    • Sass支持基本的数学运算,如加法、减法、乘法和除法,这使得计算值变得更加简单和直接。
    • Sass还提供了一系列的颜色函数,如颜色混合、颜色亮度和饱和度调整等,这些功能在创建复杂的颜色方案时非常有用。
  5. 代码组织

    • Sass允许你将样式表分割成多个文件,并通过@import指令将它们组合在一起。这有助于更好地组织代码,并使得代码更加模块化和可维护。
    • 你还可以使用Sass的部分文件(partials),这些文件以_开头,并且不会直接编译成CSS文件。它们可以作为其他Sass文件的依赖项,并通过@import指令引入。
  6. 扩展/占位符

    • Sass的扩展(extend)和占位符(placeholder)功能允许你定义一个样式块,并在需要时将其应用到其他选择器中。这有助于减少代码冗余,并使得样式表更加简洁。
  7. 条件语句和循环

    • Sass支持条件语句(如@if@else if@else)和循环(如@for@each@while),这使得你能够在样式表中添加逻辑,并根据不同的条件或数据生成不同的样式。
  8. 源映射(Source Maps)

    • Sass支持生成源映射文件,这些文件将编译后的CSS代码映射回原始的Sass代码。这使得在开发过程中调试样式变得更加容易,因为你可以直接查看和编辑Sass源代码,而无需担心编译后的CSS文件。
  9. 社区支持和工具集成

    • Sass有一个庞大的社区支持,提供了大量的教程、插件、工具和框架。这使得学习和使用Sass变得更加容易,并且你可以利用这些资源来加速你的开发过程。

Sass通过提供变量、嵌套、继承、运算、颜色函数等高级功能,以及代码组织、扩展、条件语句和循环等特性,使得CSS的编写更加简洁、灵活和高效。这些优势使得Sass成为许多前端开发者在项目中使用的首选CSS预处理器。

3、Sass的不足

Sass的不足主要体现在以下几个方面:

  1. 学习成本

    • Sass增加了许多高级功能,如嵌套规则、变量、混入(Mixins)等,对于新手来说,可能需要花费额外的时间来学习这些新概念和语法。
  2. 调试难度

    • Sass生成的CSS可能比较复杂,当出现问题时,调试原始的Sass代码可能比直接调试CSS更加困难。这要求开发者具备更高的调试技能。
  3. 文件体积和复杂度

    • Sass提供了很多高级功能,但这也可能导致生成的CSS文件体积增大,以及代码复杂度上升。特别是在大型项目中,如果不合理地利用Sass的特性,可能会导致代码难以管理和维护。
  4. 编译步骤

    • 使用Sass需要额外的编译步骤将其转换为浏览器可以理解的CSS,这可能会增加构建流程的复杂性。在开发过程中,每次修改Sass代码后都需要重新编译,可能会影响开发效率。
  5. 依赖Ruby环境

    • Sass最初是基于Ruby语言开发的,因此在使用Sass时需要安装Ruby环境。这对于一些开发者来说可能是入门的一个小障碍,因为他们可能需要额外学习和配置Ruby环境。
  6. 社区支持和兼容性

    • 虽然Sass有一个庞大的社区支持,但与其他一些CSS预处理器相比,如Less和Stylus,Sass的社区活跃度可能略逊一筹。此外,由于Sass是基于Ruby开发的,其在某些环境或平台上的兼容性可能不如其他预处理器。

Sass的不足主要体现在学习成本、调试难度、文件体积和复杂度、编译步骤、依赖Ruby环境以及社区支持和兼容性等方面。然而,这些不足并不足以掩盖Sass在CSS预处理领域的优势,许多开发者仍然选择使用Sass来增强CSS的功能和灵活性。

4、Sass适用的项目

Sass(Syntactically Awesome Style Sheets)适合多种类型的项目,特别是那些对样式表有较高需求、追求代码可维护性和可读性的项目。

  1. 大型项目

    • 在大型项目中,样式表可能会变得非常复杂和庞大。Sass的嵌套规则、变量和混入等特性有助于更好地组织和管理样式代码,减少冗余,提高代码的可读性和可维护性。
  2. 需要主题化或换肤的项目

    • 如果你的项目需要支持多个主题或换肤功能,Sass将是一个很好的选择。通过Sass的变量和混入,你可以轻松地定义和切换不同的主题样式,而无需修改大量的CSS代码。
  3. 需要动态生成样式的项目

    • Sass支持运算和函数,可以根据条件或数据动态生成样式。这对于那些需要根据用户交互、数据变化或其他因素动态调整样式的项目来说非常有用。
  4. 需要高度自定义样式的项目

    • 如果你希望项目中的样式能够高度自定义,Sass的混入和继承等特性将非常有用。你可以创建可重用的样式块,并在需要时通过混入或继承来应用它们,从而避免重复编写代码。
  5. 团队合作项目

    • 在团队合作项目中,代码的可读性和可维护性至关重要。Sass的语法和结构有助于保持代码的一致性,减少团队成员之间的误解和冲突。此外,Sass的变量和混入等功能还可以帮助团队成员更好地协作和共享样式代码。
  6. 追求最佳性能和用户体验的项目

    • 虽然Sass本身可能会增加一些编译和学习的成本,但通过使用Sass,你可以编写更简洁、更高效的CSS代码。这有助于减少浏览器的渲染时间,提高页面的加载速度和性能,从而提升用户体验。
  7. 对前端技术有较高要求的项目

    • Sass是前端技术栈中的一部分,对于那些对前端技术有较高要求的项目来说,使用Sass将是一个加分项。它可以帮助你展示对前端技术的深入理解和掌握,提高项目的整体质量和技术水平。

Sass适合那些对样式表有较高需求、追求代码可维护性和可读性的项目。通过使用Sass,你可以编写更简洁、更高效的CSS代码,提高项目的整体质量和用户体验。

5、Sass与CSS的关系

Sass(Syntactically Awesome Stylesheets)与CSS(Cascading Style Sheets)之间的关系是紧密而互补的。Sass是CSS的一种扩展或预处理语言,它允许你使用更强大、更灵活的语法来编写样式,并提供了许多有用的功能,如变量、嵌套规则、混合(mixins)和函数等。这些功能在Sass中编写完毕后,需要通过Sass编译器(如SassC、libsass、Ruby Sass等)将其编译成普通的CSS代码,以便在浏览器中正确显示。

  1. 扩展性:Sass扩展了CSS的语法和功能,提供了更多的可能性和灵活性。通过Sass,你可以使用变量来定义可重用的值,使用嵌套规则来组织代码结构,使用混合来定义可重用的样式块,以及使用函数和运算来动态计算样式值。

  2. 编译过程:Sass编写的代码(以.scss.sass为扩展名)需要通过Sass编译器转换为标准的CSS代码(以.css为扩展名)。这个编译过程通常是在构建流程中自动完成的,例如使用构建工具(如Webpack、Gulp、Grunt等)或任务运行器(如npm scripts)来调用Sass编译器。

  3. 浏览器兼容性:浏览器只能理解并解析CSS代码,而不能直接理解Sass代码。因此,Sass代码必须被编译成CSS代码后才能在浏览器中正确显示。这也是Sass被称为CSS预处理器的原因之一。

  4. 开发效率:Sass的语法和功能使得编写和维护样式表变得更加容易和高效。通过使用变量和混合,你可以避免在多个地方重复编写相同的样式代码;通过嵌套规则,你可以更好地组织代码结构,使其更具可读性;通过函数和运算,你可以更轻松地计算样式值。这些功能都可以提高开发效率,减少错误和冗余。

  5. 社区支持:Sass拥有庞大的社区支持,提供了大量的教程、插件和工具,帮助开发者更好地学习和使用Sass。这些资源可以加速你的学习进程,并解决在开发过程中遇到的问题。

Sass与CSS之间的关系是紧密而互补的。Sass通过提供扩展的语法和功能来增强CSS的能力,使得编写和维护样式表变得更加容易和高效。然而,最终生成的CSS代码仍然是浏览器理解和显示样式的关键。因此,在开发过程中,你需要确保Sass代码能够正确地编译成CSS代码,并在浏览器中正确显示。

Sass(Syntactically Awesome Stylesheets)和CSS(Cascading Style Sheets)之间的主要区别体现在语法、功能、可维护性和开发效率上。以下是具体的比较:

  1. 语法

    • CSS 使用标准的样式表语法,它基于选择器(如元素名、类名、ID等)来定义样式规则,并使用大括号 {} 和分号 ; 来分隔样式声明。
    • Sass 提供了两种语法:Sass(缩进语法)和 SCSS(Sassy CSS)。Sass 使用缩进和换行符来定义代码块,而不需要大括号和分号。SCSS 的语法与 CSS 非常相似,但增加了 Sass 的功能,如变量、嵌套等,并使用大括号和分号来分隔代码。
  2. 功能

    • CSS 是用于描述 HTML 或 XML 文档样式的标准语言。它提供了基本的样式声明,如颜色、字体、布局等。
    • Sass 增加了许多 CSS 没有的高级功能,如变量、嵌套规则、混合(mixins)、函数和运算等。这些功能使 Sass 编写和维护样式表更加容易和高效。
  3. 可维护性

    • 由于 Sass 的变量和混合功能,你可以在多个地方重复使用相同的样式,而无需重复编写代码。这减少了代码的冗余,提高了代码的可读性和可维护性。
    • Sass 的嵌套规则允许你以更直观的方式组织代码,使得样式表的结构更清晰。这也有助于提高代码的可读性和可维护性。
  4. 开发效率

    • Sass 的语法和功能使得编写样式表更加高效。例如,你可以使用变量来定义可重用的值,使用嵌套规则来组织代码结构,使用混合来定义可重用的样式块等。这些功能都可以提高开发效率,减少错误和冗余。
    • Sass 还支持条件语句和循环等控制指令,这使得你能够在样式表中添加逻辑,并根据不同的条件或数据生成不同的样式。这进一步提高了开发效率。
  5. 编译过程

    • CSS 代码可以直接在浏览器中运行。
    • Sass 代码需要编译成 CSS 代码才能在浏览器中运行。这通常是在构建流程中自动完成的,例如使用构建工具(如 Webpack、Gulp、Grunt 等)或任务运行器(如 npm scripts)来调用 Sass 编译器。
  6. 浏览器兼容性

    • CSS 是所有现代浏览器都支持的标准样式表语言。
    • 由于 Sass 需要编译成 CSS 才能在浏览器中运行,因此 Sass 本身并不具有浏览器兼容性。但是,只要 Sass 代码被正确编译成 CSS,它就可以在浏览器中正常运行。

总结来说,Sass 是一种 CSS 预处理器,它扩展了 CSS 的语法和功能,提供了更多的高级特性和工具,使得编写和维护样式表更加容易和高效。然而,Sass 代码需要编译成 CSS 才能在浏览器中运行。在选择使用 Sass 还是 CSS 时,需要考虑项目的需求和团队的技术栈。

6、Sass适用示例

Sass(Syntactically Awesome Stylesheets)是一种CSS预处理器,它允许你使用变量、嵌套、混合(mixins)和其他高级功能来编写CSS。以下是一些Sass的示例来展示其基本特性:

6.1 变量

Sass允许你定义变量并在整个样式表中重用它们。

// Sass变量定义
$primary-color: #007bff;
$font-stack:    Helvetica, sans-serif;// 使用Sass变量
body {color: $primary-color;font: 100% $font-stack;
}// 编译后的CSS
body {color: #007bff;font: 100% Helvetica, sans-serif;
}

6.2 嵌套

Sass允许你将CSS选择器嵌套在其他选择器中,这有助于减少重复和增加可读性。

// Sass嵌套
nav {ul {margin: 0;padding: 0;list-style: none;li { display: inline-block; }a {display: block;padding: 6px 12px;text-decoration: none;}}
}// 编译后的CSS
nav ul {margin: 0;padding: 0;list-style: none;
}
nav ul li {display: inline-block;
}
nav ul a {display: block;padding: 6px 12px;text-decoration: none;
}

6.3混合(Mixins)

Sass中的混合允许你定义可重用的CSS声明块,并在整个样式表中调用它们。

// Sass混合
@mixin border-radius($radius) {-webkit-border-radius: $radius;-moz-border-radius: $radius;-ms-border-radius: $radius;border-radius: $radius;
}.button {@include border-radius(10px);
}// 编译后的CSS
.button {-webkit-border-radius: 10px;-moz-border-radius: 10px;-ms-border-radius: 10px;border-radius: 10px;
}

6.4继承

Sass允许选择器继承另一个选择器的样式,但这不是Sass特有的特性,而是通过@extend指令实现的。

// Sass继承
.error {border: 1px #f00;background-color: #fdd;
}.seriousError {@extend .error;border-width: 3px;
}// 编译后的CSS(可能是这样的,但Sass在合并选择器时可能会更智能)
.error, .seriousError {border: 1px #f00;background-color: #fdd;
}.seriousError {border-width: 3px;
}

6.5运算

Sass支持在属性值和变量中进行基本的数学运算。

// Sass运算
$font-size: 12px;
$line-height: 30px;body {font: #{$font-size}/#{$line-height} $font-stack;margin: ($line-height / 2) 0;
}// 编译后的CSS(取决于Sass的版本和配置)
body {font: 12px/30px Helvetica, sans-serif;margin: 15px 0;
}

7、总结

Sass(Syntactically Awesome Stylesheets)是一种强大的CSS预处理器,它允许开发者使用变量、嵌套、混合(mixins)、继承、运算等高级功能来编写更加可维护、可重用和易于组织的样式代码。

  • 变量

Sass支持变量的定义和使用,这使得开发者能够在一个地方定义颜色、字体、尺寸等样式值,并在整个样式表中重复使用这些值。这有助于保持代码的一致性,并减少冗余。

  • 嵌套

Sass允许开发者将CSS选择器嵌套在其他选择器中,从而减少了代码的重复,并增加了代码的可读性。嵌套使得样式结构更加清晰,有助于开发者更好地理解样式的层次和关系。

  • 混合(Mixins)

Sass的混合功能允许开发者定义可重用的CSS声明块,并在整个样式表中调用它们。这有助于减少代码的冗余,并提高开发效率。混合可以包含任何有效的CSS声明,包括属性、选择器、嵌套规则等。

  • 继承

Sass通过@extend指令实现了类似于CSS类继承的功能。通过使用@extend,一个选择器可以继承另一个选择器的所有样式,从而避免了重复编写相同的样式代码。

  • 运算

Sass支持在属性值和变量中进行基本的数学运算,如加法、减法、乘法和除法。这使得开发者能够更灵活地处理尺寸、颜色等样式值,并创建更加动态和可响应的样式。

  • 其他特性

Sass还提供了许多其他有用的特性,如颜色函数(用于颜色计算和转换)、条件语句(如@if@for)、导入(@import)等。这些特性进一步增强了Sass的灵活性和可定制性。

  • 编译过程

Sass代码需要通过Sass编译器(如sassnode-sass)转换为CSS代码才能在浏览器中运行。这通常是在项目的构建流程中自动完成的,开发者只需编写Sass代码,然后让构建工具处理编译过程。

  • 浏览器兼容性

Sass本身并不具有浏览器兼容性,因为Sass代码需要编译成CSS才能在浏览器中运行。然而,只要Sass代码被正确编译成CSS,它就可以在浏览器中正常运行,并且兼容所有支持CSS的浏览器。

Sass是一种强大的CSS预处理器,它提供了许多高级功能和特性,使得开发者能够更加高效、可维护地编写CSS代码。通过使用Sass,开发者可以创建更加灵活、可重用和易于组织的样式,从而提高项目的质量和开发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/847263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

家政预约小程序09小程序分享及海报分享

目录 1 设置弹窗2 制作海报总结 上一篇我们介绍了服务详情页面的开发,本篇介绍一下用户分享及海报分享的功能 1 设置弹窗 当用户点击分享按钮的时候,系统弹出弹窗界面,提供分享好友及分享海报的选项。选中页面组件,添加弹窗组件 …

nodeJs项目总结

文章目录 学习总结mongoose指令操作schema 对象将Shcema对象转化为数据模型操作数据库插入查询删除修改限制查询条数 模板引擎语法模版输出条件判断循环 子模版模版继承 项目Login主要步骤及逻辑身份认证session cookiejwt 学习总结 mongoose 指令 mongodb 数据库名 mongod…

了解 IPv4 和 IPv6 之间的区别?

在广阔的互联网环境中,设备之间的通信依赖于一组独特的协议来促进连接。在这些协议中,IPv4(互联网协议第4版)和IPv6(互联网协议第6版)是数字基础设施的支柱,能够跨网络传输数据。但是&#xff0…

基于WIN2016搭建MS2016 ALWAYS ON域控故障转移群集

基于WIN2016搭建MS2016 ALWAYS ON域控故障转移群集 一、前言1、Always On简介2、AD DC域控简介 二、部署实施1、部署环境简介2、搭建流程简介3、域控服务器安装及群集节点加域3.1、安装域控,安装同时会安装DNS系统3.2、执行安装,完成后重启服务器3.3、将…

前端需不需要控制并发请求?浏览器自带并发控制?

不知道为什么,最近大数据给我推荐了几篇前端做控制并发的文章,技术实现是没任何问题,使用到的技术核心也不错,就是应用的地方就有点问题了。 浏览器 HTTP 请求 pending 打开浏览器,network 可以看每个请求的状态&…

如何让 大模型/深度学习 更加聪明(切实有效的8个思考角度)

要让大模型更加聪明,可以采取以下方法: 增加数据量:大模型需要足够的数据来学习和理解复杂的问题。通过增加训练数据的数量,可以帮助模型更全面地学习和推理。 提高模型的复杂度:大模型往往有更多的层和参数&#xff…

「vue同一个组件,不同路由切换时界面没有更新问题」

问题&#xff1a;vue项目中不同路由切换时&#xff0c;因为引用的同一个组件&#xff0c;界面数据没有更新 一、解决方法 添加key&#xff0c;具体原理可参考vue中的diff算法 <router-view :key"$route.fullPath"></router-view>

【代码随想录算法训练营第37期 第二十八天 | LeetCode93.复原IP地址、78.子集、90.子集II】

代码随想录算法训练营第37期 第二十八天 | LeetCode93.复原IP地址、78.子集、90.子集II 一、93.复原IP地址 解题代码C&#xff1a; class Solution { private:vector<string> result;void backtracking(string& s, int startIndex, int pointNum){if(pointNum 3){…

AI大数据处理与分析实战--体育问卷分析

AI大数据处理与分析实战–体育问卷分析 前言&#xff1a;前一段时间接了一个需求&#xff0c;使用AI进行数据分析与处理&#xff0c;遂整理了一下大致过程和大致简要结果&#xff08;更详细就不方便放了&#xff09;。 文章目录 AI大数据处理与分析实战--体育问卷分析一、数据…

【电子通识】什么是电力电子

什么是电力电子 在日常生活中&#xff0c;电能变换的需求无处不在。比如给手机充电&#xff0c;充电器从插座220V交流电取电并转换为手机电池所需的5V或者其他幅度的直流电输送给手机&#xff0c;这就完成了最简单的AC-DC电能转换。除此之外&#xff0c;还有空调、电视、新能源…

【C++】入门(二):引用、内联、auto

书接上回&#xff1a;【C】入门&#xff08;一&#xff09;&#xff1a;命名空间、缺省参数、函数重载 文章目录 六、引用引用的概念引用的使用场景1. 引用做参数作用1&#xff1a;输出型参数作用2&#xff1a;对象比较大&#xff0c;减少拷贝&#xff0c;提高效率 2. 引用作为…

MySQL—约束—外键约束(基础)

一、引言 概念&#xff1a;外键用来让两张表的数据之间建立连接&#xff0c;从而保证数据的一致性和完整性。 举个例子&#xff1a; 提示说明&#xff1a;&#xff08;有两张表&#xff09; &#xff08;1&#xff09;员工表&#xff1a;emp id&#xff1a;主键、姓名、年龄、…

git 提交

当你不小心在master上改了代码&#xff0c;并且add&#xff0c; commit 之后&#xff0c;想push&#xff0c;发现根本push不了&#xff08;本来也不能直接将master代码push到远端&#xff09;&#xff0c;而且每次pull远程master的时候都要和本地的master进行merge &#xff0c…

机器人系统ros2-开发学习实践16-RViz 用户指南

RViz 是 ROS&#xff08;Robot Operating System&#xff09;中的一个强大的 3D 可视化工具&#xff0c;用于可视化机器人模型、传感器数据、路径规划等。以下是RViz用户指南&#xff0c;帮助你了解如何使用RViz来进行机器人开发和调试。 启动可视化工具 ros2 run rviz2 rviz2…

css-Ant-Menu 导航菜单更改为左侧列表行选中

1.Ant-Menu导航菜单 导航菜单是一个网站的灵魂&#xff0c;用户依赖导航在各个页面中进行跳转。一般分为顶部导航和侧边导航&#xff0c;顶部导航提供全局性的类目和功能&#xff0c;侧边导航提供多级结构来收纳和排列网站架构。 2.具体代码 html <!-- 左侧切换 --><…

15、matlab绘图汇总(图例、标题、坐标轴、线条格式、颜色和散点格式设置)

1、plot()函数默认格式画图 代码: x=0:0.1:20;%绘图默认格式 y=sin(x); plot(x,y) 2、X轴和Y轴显示范围/axis()函数 代码: x=0:0.1:20;%绘图默认格式 y=sin(x); plot(x,y) axis([0 21 -1.1 1.1])%设置范围 3、网格显示/grid on函数 代码: x=0:0.1:20;%绘图默认格式 …

CXL (1)

为什么有CXL CXL说到底 是为了打破内存墙而生的 CXL全称是Compute Express Link&#xff0c; 可以用来连接CPU&#xff0c;以及其他任何计算单元&#xff0c;比如GPU。 CXL和PCIe跑在一样的physical layer上&#xff0c;与PCIe不一样的是&#xff0c;CXL允许CPU和连接的设备共…

Python | R 潜在混合模型

&#x1f4dc;用例 &#x1f4dc;Python | MATLAB | R 心理认知数学图形模型推断 | &#x1f4dc;信用卡消费高斯混合模型 | &#x1f4dc;必修课学业成绩分布异常背景混合模型潜在类别分析 ✒️潜在混合模型 本质上&#xff0c;混合模型&#xff08;或混合分布&#xff09;…

(文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略

参考文献&#xff1a; [1]潘虹锦,高红均,杨艳红,等.基于主从博弈的售电商多元零售套餐设计与多级市场购电策略[J].中国电机工程学报,2022,42(13):4785-4800. 1.摘要 随着电力市场改革的发展&#xff0c;如何制定吸引用户选择的多类型零售套餐成为提升售电商利润的研究重点。为…

wms中对屏幕进行修改wm size设置屏幕宽高原理剖析

背景&#xff1a; 上面是正常屏幕1440x2960的屏幕大小&#xff0c;如果对display进行相关的修改&#xff0c;可以使用如下命令&#xff1a; adb shell wm size 1080x1920 得出如下的画面 明显看到差异就是屏幕上下有黑边了&#xff0c;那么下面就来调研这个wm size是怎么做的…