python 去空格_【独家原创】yml文件缩进不对齐,多一个空格会怎样?

博主分享Spring Boot项目中application.yml文件因多一个空格导致启动报错的经历,指出报错位置不准确且IDE无提示。还提到YAML和Python严格要求缩进,易出现问题,而properties或xml则不会,博主甚至立下不碰Python的目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你以为yml文件的缩进无所谓吗?多一个空格少一个空格都可以吗?呵呵。我今天发现yml才是历史上最垃圾、最反人类的数据储存格式。

以下是我的Spring Boot项目中application.yml的内容节选,行号为45到57行。

# 海康视频接口

看上去很对齐是吧?人眼观察,这些配置信息确实是对齐了的。

然而Spring Boot启动报错:

Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping

in 'reader', line 1, column 1:

spring:

^

expected <block end>, but found '<block mapping start>'

in 'reader', line 51, column 3:

yangUsername: yzb73920

^

注意它指的报错行号是第1行和第51行。

我愣了一会,发现错的并不是这两行,而是第48行server: https://14.29.96.12,在server前面多了一个空格。把空格删去即解决问题。

  • 首先,一个成熟的、行业普遍使用的框架,居然会因为多一个空格而无法启动。
  • 其次,你无法启动也就算了,你指的报错位置还指不准。
  • 第三,我多出来的这个空格,在目前最新版本的IntelliJ IDEA中没有任何提示。这是最不能忍的,你说Python缩进有IDE辅助,不用人眼去关注缩进,现在IDE根本没辅助我呀。

3d3b6e71e68caa443239a839cd437391.png

假如用properties或xml作为配置文件格式,是不会出现这个问题的,它们都不会计较多一个空格或者少一个空格。

只有诸如YAML和Python这种严格要求缩进的语言,才会出现这种莫名其妙的坑。

因此我今天也立下人生目标: 我一辈子不碰Python。 凡是需要Python的应用场景,我都用Node.js解决。

(Python表示:关我什么事?)

SystemClock_Config是一个函数,用于配置STM32微控制器的系统时钟。它是在STM32 HAL库中提供的,用于设置时钟源、时钟分频时钟倍频等参数。 该函数的具体实现会根据不同的STM32系列微控制器有所区别,但一般情况下,它会通过修改相关寄存器的值来配置系统时钟。 你可以使用该函数来设置系统时钟以满足你的应用需求,例如调整主频、选择外部晶振或内部时钟源等。在使用该函数之前,你需要先初始化相关的时钟源时钟分频器。 以下是一个示例代码片段,展示了如何使用SystemClock_Config函数来配置系统时钟: ``` /* Includes */ #include "stm32xxxx.h" #include "stm32xxxx_hal_rcc.h" /* Function prototypes */ void SystemClock_Config(void); /* Main function */ int main(void) { /* Configure the system clock */ SystemClock_Config(); /* Rest of your code */ while (1) { /* Your code here */ } } /* System Clock Configuration */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; /* Configure the main PLL clock source, multiplication factor, and division factors */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6; RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV3; HAL_RCC_OscConfig(&RCC_OscInitStruct); /* Configure the clock prescalers, clock source, and clock division factors for each clock */ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1); } ``` 请注意,上述示例代码中的"stm32xxxx""xxxx"应该替换为你使用的具体STM32系列型号。在实际使用中,你需要根据你的需求具体的硬件配置来调整SystemClock_Config函数中的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值